让我们说,我想从emblem.js模板中调用Ember Handlebars助手。
我已经通过(CoffeeScript语法)声明了帮助器:
Ember.Handlebars.registerHelper 't', (key, value, context) ->
...
尝试使用
从徽章调用帮助程序时= t "my.i18n.key", "val", count: 42
key
被正确分配,除了第一个参数之外的所有参数都被删除,第二个参数被一些选项哈希替换,就像绑定帮助器的情况一样(第三个参数未定义)。
有没有办法在带有多个参数的emblem.js中调用帮助器?
答案 0 :(得分:3)
我认为你只能传递一个值,但你可以使用带有许多绑定/计算属性的options hash,如下所示:
Ember.Handlebars.registerBoundHelper('truncatedQuery',
function truncatedQueryHelper(value, options) {
console.log('value', value, 'options:',
options.hash['key1'], options.hash['key2'], options.hash['key3']);
// do work...
return somethingUseful;
});
在您的模板中使用optionsHashKeyBinding=propertyOnControllerName
,如下所示:
<div class='truncated-query'>
{{truncatedQuery 'value' key1Binding=prop1 key2Binding=prop2 key3=42}}
</div>
控制器上prop1
和prop2
的位置:
App.IndexController = Ember.Controller.extend({
prop1: 'foo',
prop2: function() {
return this.get('prop1') + 'bar';
}.property('prop1'),
});