gpt4 book ai didi

javascript - 使用 AEM 的 Javascript Use-API,如何将函数传递到 HTL 端并使用参数调用它?

转载 作者:行者123 更新时间:2023-11-28 16:56:46 24 4
gpt4 key购买 nike

在 Adob​​e AEM 中,假设我有一个 Javascript Use-API 文件,其中的数据被传回:

文件:secure.js

use( function() {
var pages = ['home', 'about', 'contact'];

return {
pages: pages,
isSecurePage: function(pageName) {
return pages.indexOf(pageName) > -1;
}
});

然后在 HTL 中,我如何才能调用 isSecurePage 方法并向其传递所需的参数?

我已经尝试过这个:

文件:home.html

<sly data-sly-use.secure="./secure.js" />

<div class="row" data-sly-list.child="${currentPage.listChildren}">
<sly data-sly-test="${secure.isSecurePage(child.getName)}"> <!-- ERROR! -->
<a href="${child.getPath}.html">${child.getName}</a>
</sly>
</div>

但是我收到这样的错误:

模板解析错误...

... 表达式 ${secure.isSecurePage( child .getName ) }


我尝试以不同的方式重写它们,看看是否可以调用该方法,但这里的一切都失败了:

1) secure.isSecurePage @ child.getName

2) secure.isSecurePage @ 'child.getName' )

3) secure.isSecurePage @ 0=child.getName )


虽然下面这些不会导致错误,但它似乎没有正确传递参数:

4) secure.isSecurePage @first=child.getName )

5) secure.isSecurePage @ pageName=child.getName )

^ keeps returning false even though it should be true.

我将尝试找出一种从 Javascript Use-API 登录的方法来进一步调查这一点。

如果有人知道,请帮忙!

谢谢

最佳答案

您不能在 HTL 中调用采用参数的方法。唯一允许参数的构造是模板和 Use-objects 实例化。有关更多详细信息,请查看规范的 data-sly-use [0] 和 Use-API [1] 部分。

[0] - https://github.com/adobe/htl-spec/blob/1.4/SPECIFICATION.md#221-use
[1] - https://github.com/adobe/htl-spec/blob/1.4/SPECIFICATION.md#4-use-api

关于javascript - 使用 AEM 的 Javascript Use-API,如何将函数传递到 HTL 端并使用参数调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58936571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com