Могу ли я передать параметры в слот контента из вызывающего ISML? - PullRequest
0 голосов
/ 29 ноября 2018

Я хотел бы иметь возможность передавать некоторую дополнительную информацию в слот контента либо через переменную области запроса, либо с помощью других средств.

Я пробовал это в своем вызове 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>

Есть ли какой-то способЯ могу передать объект или строку в слот контента?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Content Assets не знает о странице, в которую они встроены. Это сделано специально.Однако вы можете встроить HTML в ваш контент, используя $ include () $, который выбирает html с именованного контроллера или ссылку на другую страницу сайта, используя любой из методов $ url.

В шаблонах контента можно также ссылаться на данные из слота контента или из самого контента, используя: $ {slotcontent} и $ {slotcontent.content} соответственно.

0 голосов
/ 30 ноября 2018

Актив контента не имеет доступа к данным, созданным или переданным в 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>
...