【发布时间】:2012-05-15 03:20:44
【问题描述】:
标签标签的格式为:
<label for="id_of_text_field">
<input type="text" name="example" id="id_of_text_field" />
其中标签的for标签和文本字段的id标签需要匹配。我有两个想法可以在我的 Ember.js 模板中完成这项工作:
想法 #1: 我尝试创建一个名为 field_id 的特殊绑定,以便在 label 和 TextField 中使用。我执行如下:
<label {{bindAttr for="content.field_id"}}> {{content.label}}</label>
{{view Ember.TextField valueBinding="content.data" id="content.field_id"}}
不幸的是,只有label's id 可以正确呈现。 TextField's id 确实不正确渲染,结果显示为“metemorph ... something-or-other”。
想法 #2: 以某种方式变出 TextField 的 id 并将其用于标签标签,但恐怕在某些时候 TextField 的 id 在呈现标签标签时不会准备好。即使这不是问题,我也不知道如何从 JS 中找到 TextField's id。
这是在模板中,因此我将拥有多个标签/文本字段对。
如何让标签的 for 标签与带有 Ember.js 的 TextField 的 id 标签匹配?
谢谢!
更新
根据 Peter Wagenet 的建议并稍作修改,我做了以下工作:
<label {{bindAttr for="textField.elementId"}}> {{content.label}}</label>
{{view Ember.TextField valueBinding="content.value" viewName="textField"}}
使用此技术,用户现在可以单击标签来选择 TextFields、CheckBoxes 和 Selects。
【问题讨论】:
-
对于最新的 Ember (1.4.0-beta.6),您需要改用
for="view.textField.elementId"。