0

我扩展了一个视图(使用 fieldId 生成器函数)并设置了以下模板:

我需要为标签“for attribute”(使用 view.fieldId 计算)和 {{view Em.Textfield ...}} 具有相同的计算 ID

如何在 {{view Em.TextField 表达式..}} 中使用 view.fieldId 设置 id 属性?

还有其他选择吗?

template: Ember.Handlebars.compile('<label class="control-label" {{bindAttr for="view.fieldId"}}>{{view.label}}</label>\
                     <div class="controls">\
                     {{view Em.TextField valueBinding="view.value" class="input-large"}}\
                     <span class="help-inline">Something may have gone wrong</span>\
                     </div>')
4

1 回答 1

1

解决方法是将 的属性绑定for<label>elementId属性上Ember.TextField

viewName首先,您必须通过设置其属性为您的 Ember.TextField 命名:

{{view Ember.TextField viewName="myTextField"}}

然后,您必须将其绑定elementIdfor属性,使用bindAttr

<label {{bindAttr for="view.myTextField.elementId"}}> My label </label>

它有效,只需在此 JSFiddle 中尝试

注意:还有另一种解决方案是input将标签嵌套在内部。有关更多信息,请查看这个 SO 问题:Using Ember.js text field ids for a tag

于 2013-01-10T19:07:42.560 回答