2012-08-14 48 views
2

标签标记我有我建立在Ember.js应用程序,需要<label>标签是由标签<input>分离的形式。这造成了一个问题b/c我似乎无法正确地绑定<label>标记的for=""属性。Ember.js文本字段ID为与Ember路由器

我已经看过这个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> 

回答

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> 

+0

优秀。像魅力一样工作。 – 2012-08-14 20:16:07

+0

正是我所需要的 – 2013-03-24 08:45:58

+0

当你的文本字段是动态生成的,这意味着你不能称之为'curUser',这将如何工作? – Cimm 2014-05-23 22:17:05