Ember.js带有ember路由器的标签标签的TextField id

时间:2012-08-14 17:12:07

标签: javascript ember.js

我有一个我在Ember.js应用中构建的表单,该表单要求<label>标记与<input>标记分开。这造成了一个问题b / c我似乎无法正确绑定for=""标记的<label>属性。

我已在解决方案的评论中查看了此QuestionFiddle,但它似乎不适用于使用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>

1 个答案:

答案 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>