【问题标题】:How to pass object to handlebars helper如何将对象传递给车把助手
【发布时间】:2016-03-02 23:48:23
【问题描述】:

使用 handlebars-1.1.2 和旧的 emberjs 1.5.1。 我有代码:

{{#each queue in appController.queues_services_array}}
    <label for="{{GetObjectId queue}}">{{queue.title}}</label></div>
{{/each}}

和助手:

Handlebars.registerHelper('GetObjectId', function(value) {
  return value.id;
});

问题是提供给助手的数据只是字符串“队列”,而不是对象。我想知道如何将 object “队列”传递给 helper。

【问题讨论】:

  • 为什么不for="{{queue.id}}"
  • 尝试“this”而不是“queue”,我的问题是你在#each循环中,而你的循环队列中实际上是queue.queue
  • 这很好。也很好奇,Ember 版本为什么这么老?您是否尝试过重构为更新的版本?
  • %Jon Koops:它不起作用,描述为here
  • 您是否尝试过使用bind-attr?你应该可以做到:&lt;label {{bind-attr for=queue.id}}&gt;....

标签: ember.js handlebars.js


【解决方案1】:

您可以使用 bind-attr 帮助器将您的值绑定到特定属性:

<label {{bind-attr for=queue.id}}>{{queue.title}}</label>

或者,如果您不希望更改值,则可以使用未绑定的帮助器,这会产生一些改进的性能:

<label for="{{unbound queue.id}}">{{queue.title}}</label>

您可以做的最好的事情是更新到较新版本的 Ember,这样您就可以使用允许您使用常规 Handlebars 的较新语法:

<label for="{{queue.id}}">{{queue.title}}</label>

假设您有时间和预算。

【讨论】:

    猜你喜欢
    • 2014-09-25
    • 2013-08-14
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    相关资源
    最近更新 更多