December 31, 2020
Estimated Post Reading Time ~

Uncaught TypeError - Handlebars.compile is not a function - AEM 6.5

We are using a custom color picker from Experiencing Adobe Experience Manager - Day CQ: AEM 65 - Touch UI RTE (Rich Text Editor) Dialog Colo... - the color picker works fine, but color-picker.js throws this Uncaught TypeError, and that causes an issue with other plugins which load after it. 

My understanding is that Handlebars is included OOTB in AEM, based on the docs - SCF Handlebars Helpers (although, the 6.5 version of this documentation appears incorrect - helpers.js has moved to /libs/clientlibs/social/commons/scf/helpers.js in 6.5) which makes me think that the issue is due to helpers.js moving. Is there a step that is missing somewhere that I need to make sure Handlebars is included and accessible by this JS file?

Solution:
The error is because the plugin is loading twice with the page and in a popover dialog, and in the popover dialog the Handlebar js is not being loaded that causing the issue, in case if you are using custom plugins then add below condition in plugin js to load plugins only once.

if (document.location.pathname.indexOf("/editor.html/") > -1)
addDialogTemplate();


I've updated the color picker and created a new custom style plugin and both are working fine in 6.3, 6.4 and 6.5


Reference:
AEM - Touch UI - RTE HTML Element Selector, Custom Style Plugin & Color Picker Plugin


By aem4beginner

No comments:

Post a Comment

If you have any doubts or questions, please let us know.