Я просто хочу передать объект javascript, заполненный шаблоном, вспомогательной функцией. Я рассмотрел разговоры о передаче объектов-помощников в циклы, но не нашел ничего, что непосредственно касается следующего примера.
<script type="text/javascript">
// an object set by the template
var SomeObject = {};
SomeObject.Id=6;
</script>
<script id = "SomeTemplate" type="text/html">
<div id="somegroup_{{>Id}}" class="main">
<img id="somegroup_img_{{>Id}}" class="mainImg" src="{{: ~fltrOAMnImgs_hlp(Images, SomeObject)}}">
</div>
</script>
Текущий код не передает SomeObject функции-помощнику. Как я могу сделать это с помощью новой jsrender lib?
Если вы хотите предоставить доступ к вашему SomeObject
внутри шаблона, вы должны передать этот объект в качестве помощника. Есть несколько способов сделать это, в зависимости от того, хотите ли вы, чтобы он был доступен глобально для всех шаблонов, только для этого шаблона или только для этого вызова render(). См. Раздел: $.views.helpers() в разделе " Помощники регистра", "Конвертеры", теги...
Например, если вы передадите его с вызовом рендеринга с таким именем, как "myObject":
myTemplate.render(myData, {myObject: SomeObject});
то вы можете ссылаться на него как на ~myObject
:
<img ... src="{{: ~fltrOAMnImgs_hlp(Images, ~myObject)}}">
См. Также этот ответ: попытка запустить функцию в массиве в цикле for, используя jsrender