передать объект уровня js dom в шаблонную функцию, используя jsrender

0

Я просто хочу передать объект 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?

Теги:
jsrender
jquery-templates

1 ответ

0
Лучший ответ

Если вы хотите предоставить доступ к вашему SomeObject внутри шаблона, вы должны передать этот объект в качестве помощника. Есть несколько способов сделать это, в зависимости от того, хотите ли вы, чтобы он был доступен глобально для всех шаблонов, только для этого шаблона или только для этого вызова render(). См. Раздел: $.views.helpers() в разделе " Помощники регистра", "Конвертеры", теги...

Например, если вы передадите его с вызовом рендеринга с таким именем, как "myObject":

myTemplate.render(myData, {myObject: SomeObject});

то вы можете ссылаться на него как на ~myObject:

<img ... src="{{: ~fltrOAMnImgs_hlp(Images, ~myObject)}}">

См. Также этот ответ: попытка запустить функцию в массиве в цикле for, используя jsrender

  • 0
    К сожалению, кажется, когда я пытаюсь передать это: var AdUnit = {}; AdUnit.Id = 6; $ ("#MOBILELARGE") .html ($ ("#mobileLargeTemplate") .render (currentOffer, AdUnit)); переменная AdUnit.Id появляется неопределенной при запуске шаблона
  • 0
    Если вы передаете AdUnit как параметры, контекстная переменная будет ~ id. Если вы хотите, чтобы весь объект AdUnit был доступен как переменная ~ AdUnit, вам нужно передать его как .render (currentOffer, {AdUnit: AdUnit}) - поэтому AdUnit - это свойство объекта параметров, который вы передаете. (Как в моем примере выше с ~ myObject).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню