Expand my Community achievements bar.

SOLVED

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

Avatar

Level 1

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?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

The error is because the plugin is loading twice with 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 new custom style plugin and both are working fine in 6.3,6.4 and 6.5



Arun Patidar

View solution in original post

12 Replies

Avatar

Level 7

Hi,

the handlebars library is deployed by default if you include the cq.authoring.dialog clientlib into your project (as you can see from the image).

Screen Shot 2019-06-28 at 18.35.01.png

Thanks,

Antonio

Avatar

Correct answer by
Community Advisor

The error is because the plugin is loading twice with 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 new custom style plugin and both are working fine in 6.3,6.4 and 6.5



Arun Patidar

Avatar

Level 3

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

        addDialogTemplate();

}

 

yes, it is working for us, we are having a similar issue with RTE Image Picker Plugin.

Thanks 

 
 

Avatar

Level 1

hi , i have used the same method suggested by you but still getting the error " handlebars.compile is not a function"

Avatar

Level 2

Hi Arun,

I was not able to fix the same issue by adding the

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

        addDialogTemplate();

Do we need to do something else?@

Avatar

Community Advisor

I updated color picker plugin, works with AEM 6.3+

you can get it from below:

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



Arun Patidar

Avatar

Level 3

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

        addDialogTemplate();

}

 

yes, it is working for us, we are having a similar issue with RTE Image Picker Plugin.

Avatar

Level 1

To resolve the Handlebars.js error that you are experiencing, it is recommended that you add cq.tsdk.handlebars as a dependency to the clientlib folder

 

eswarvarun_0-1679308113487.png