2015-06-10 2 views
7

Я не смог найти убедительный пример.Как передать несколько аргументов помощнику Spacebars из шаблона Meteor?

Template.registerHelper("itemLookup", function(sku, property){ 
    return Items.findOne({sku: sku})[property]; 
}); 

Как это можно назвать на шаблоне?

Я хочу сделать что-то вроде:

{{ itemLookup sku="i3_4030U" property="title" }} 

Он должен вывести

"Intel Core i3 4030U" 

ответ

21

Не называйте параметры шаблона хелперов, они будут переданы в том же порядке, в вашей вспомогательной функции:

{{ itemLookup "i3_4030U" "title" }} 

EDIT:

Почему тогда я вижу примеры в Интернете, где они назовут шаблон вспомогательных параметров?

можно назвать параметры при включении другого шаблона и вы хотите установить свой текущий контекст данных на что-то другое:

{{> childTemplate param1="A" param2="B"}} 

В шаблоне ребенок разметке вы будете иметь возможность ссылаться на {{param1}} и {{param2}}.

Еще Рули хелперы функции доступны в Spacebars является «хэш» факультативное значение аргумента вы можете передать в качестве последнего аргумента в ваших вспомогательных параметров, вы можете использовать его как это:

HTML

{{helper "A" "B" namedParam1="C" namedParam2="D"}} 

JS

Template.registerHelper("helper", function(param1, param2, options){ 
    console.log("param1 :", param1); 
    console.log("param2 :", param2); 
    if(options && options.hash){ 
    console.log("namedParam1 :", options.hash.namedParam1); 
    console.log("namedParam2 :", options.hash.namedParam2); 
    } 
}); 
+0

Guhhhhhhh ...... спасибо. Почему тогда я вижу примеры онлайн, где они называет параметры помощника шаблона? – fuzzybabybunny

+0

Отредактированный мой ответ, чтобы охватить названные параметры, использует случаи в Spacebars. – saimeunt

+1

Спасибо! Это краткое резюме именно то, что я искал! – fuzzybabybunny

Смежные вопросы