我有一个我在Ember.js应用中构建的表单,该表单要求<label>
标记与<input>
标记分开。这造成了一个问题b / c我似乎无法正确绑定for=""
标记的<label>
属性。
我已在解决方案的评论中查看了此Question和Fiddle,但它似乎不适用于使用Ember.Router
架构的应用
这是我的小提示例,说明了这个问题: http://jsfiddle.net/wmarbut/jKGMW/
我非常喜欢不要使用任何需要我在每个表单字段的视图或控制器对象中输入实际条目的解决方案。
这里可以看到快速而肮脏的代码
<table>
<tr>
<th>
<!-- XXX: How do I bind the "for" attribute correctly? -->
<label {{bindAttr for="curUser.elementId"}}>Current User</label>
</th>
<td>
{{view Ember.TextField valueBinding="current_user.first_name" viewName="curUser"}}
</td>
</tr>
</table>
答案 0 :(得分:9)
显然,您需要使用view.
这个小提琴奏效:http://jsfiddle.net/wmarbut/jKGMW/5/
更新的代码将是
<table>
<tr>
<th>
<!-- XXX: This now works -->
<label {{bindAttr for="view.curUser.elementId"}}>Current User</label>
</th>
<td>
{{view Ember.TextField valueBinding="current_user.first_name" viewName="curUser"}}
</td>
</tr>