AEM 6.x:如何将HTL变量传递给clientlib/JS?

AEM 6.x:如何将HTL变量传递给clientlib/JS?,aem,htl,Aem,Htl,下面几行代码加载了我的javascript <sly data-sly-use.clientLib="${'/libs/granite/sightly/templates/clientlib.html'}" data-sly-unwrap /> <sly data-sly-call="${clientLib.js @ categories='myhost.mycustomJS'}" data-sly-unwrap /> 我有一个HTL属性(例如:${properti

下面几行代码加载了我的javascript

<sly data-sly-use.clientLib="${'/libs/granite/sightly/templates/clientlib.html'}" data-sly-unwrap />
<sly data-sly-call="${clientLib.js @ categories='myhost.mycustomJS'}" data-sly-unwrap />

我有一个HTL属性(例如:${properties.myCustomProperty}),我想传递给myCustomJS

你知道怎么做吗

我在网上到处找了找,但没有找到任何有用的东西


谢谢。

您正在尝试使用客户端脚本访问服务器端属性。正如您可能意识到的,在服务器端执行sightly,并将渲染输出返回到浏览器。在您的情况下,您需要将属性发送到浏览器,使其可供客户端脚本使用

  • 技术1:(推荐)数据属性- 这是最容易发送的,因为DOM结构不会改变。将值作为数据元素传递,并使用jquery检索。例如:
  • var value=$('#mydiv').data('custom-property');
    console.log(值)
    
    您正在尝试使用客户端脚本访问服务器端属性。正如您可能意识到的,在服务器端执行sightly,并将渲染输出返回到浏览器。在您的情况下,您需要将属性发送到浏览器,使其可供客户端脚本使用

  • 技术1:(推荐)数据属性- 这是最容易发送的,因为DOM结构不会改变。将值作为数据元素传递,并使用jquery检索。例如:
  • var value=$('#mydiv').data('custom-property');
    console.log(值)
    
    
    
    选项1是一条可行之路+1用于解释服务器端和客户端执行模型之间的差异。选项1是一种方法+1用于解释服务器端和客户端执行模型之间的差异。