2

比方说,我想从一个会徽.js 模板中调用一个 Ember Handlebars 助手。

我已经通过(CoffeeScript 语法)声明了助手:

Ember.Handlebars.registerHelper 't', (key, value, context) ->
    ...

尝试从标志调用助手时使用

= t "my.i18n.key", "val", count: 42

key被正确分配,除了第一个参数之外的所有参数都被删除,第二个参数被一些选项哈希替换,就像绑定助手的情况一样(第三个参数未定义)。

有没有什么方法可以用多个参数在会徽.js 中调用帮助器?

4

1 回答 1

4

我认为您只能传递一个值,但您可以使用具有许多绑定/计算属性的选项哈希,如下所示:

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>

控制器上的位置prop1prop2位置:

App.IndexController = Ember.Controller.extend({
  prop1: 'foo',
  prop2: function() {
    return this.get('prop1') + 'bar';
  }.property('prop1'),
});
于 2013-11-02T06:15:34.503 回答