Ember.js 带有 ember 路由器的标签标签的文本字段 ID

Ember.js TextField id for label tag with ember router

本文关键字:标签 文本 字段 ID 路由器 js 带有 ember Ember      更新时间:2023-09-26

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

我已经在解决方案的评论中查看了这个问题和小提琴,但它似乎不适用于使用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>
显然,

您需要使用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>