【问题标题】:Supplying multiple arguments in emblem.js helper invocation在会徽.js 助手调用中提供多个参数
【发布时间】:2015-07-30 05:35:50
【问题描述】:

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

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

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

当尝试使用徽章调用助手时

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

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

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

【问题讨论】:

    标签: ember.js handlebars.js emblem.js


    【解决方案1】:

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

    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'),
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 2015-09-24
      • 1970-01-01
      • 2016-09-02
      相关资源
      最近更新 更多