1

我希望能够通过请求范围变量或其他方式将一些补充信息传递给内容槽。

我在调用 ISML 时尝试过这个:

<isset name="message" scope="request" value="I want to be an Air Force Ranger" />
<isslot id="slot-message" context="global" description="banner"/>

在我拥有的插槽的渲染模板中:

<iscontent type="text/html" charset="UTF-8" compact="true"/>
<iscache type="relative" hour="24"/>
<h3>${request.custom.message}</h3>

但是,在输出 HTML 中,我得到:

<h3>null</h3>

有什么方法可以将对象或字符串传递给内容槽?

4

2 回答 2

1

内容资产无权访问创建或传递给 ISML 的数据。但是,可以通过将数据添加到 DOM,然后在内容资产中读取它来完成解决方法:

<div class="banner-data" data-message="${message}">
    <isslot id="slot-message" context="global" description="banner"/>
</div>

然后,在您的内容资产中,您可以阅读并使用该消息:

<script>
    var bannerData = $('.banner-data').data();
    var message = bannerData["message"];
</script>
于 2018-11-29T23:03:34.490 回答
0

内容资产不知道它们嵌入的页面。这是设计使然。但是,您可以使用 $include()$ 将 HTML 嵌入到您的内容中,它从命名控制器中获取 html 或使用任何 $url 方法链接到站点上的另一个页面。

在内容模板中,还可以分别使用 ${slotcontent} 和 ${slotcontent.content} 来引用来自内容槽或内容本身的数据。

于 2019-02-27T20:34:09.663 回答