如何在 AEM 组件中使用 onclick 方法

How to use onclick method inside AEM component

我有一个 AEM6 html 组件,我从对话框中获取值并通过 .js 文件在组件内部使用它并使用 return 属性。

我可以获取创作的值,但是当我在 onclick 方法中使用它时,它变得 null 或为空。请在下面找到下面的代码片段。

<div data-sly-unwrap data-sly-use.test="test.js"></div>

<a href="#" class="${test.testId}" id="${test.testId}" onClick="toggleDraw('${test.testId}')" >

我创作的内容显示在 class 和 Id 中,但未显示在 onClick 方法中。

下面是创作后得到的输出。

<a href="#" class="get-a-quote" id="get-a-quote" onClick="toggleDraw('')" >

我需要的输出是:

<a href="#" class="get-a-quote" id="get-a-quote" onClick="toggleDraw('get-a-quote')" >

这应该可以解决问题:

<a data-sly-test.variable123="toggleDraw('${test.testId}')" href="#" class="${test.testId}" id="${test.testId}" onclick="${variable123 @ context='attribute'}" >

由于嵌套的单引号,您需要将函数调用放在变量中。在这种情况下,您需要手动设置上下文。如果 "attribute" 做了一些你不喜欢的转义,你可以使用 "unsafe" - 这将导致所有转义机制被禁用。这可能是也可能不是您的应用程序的安全问题。

HTH