Ember.js:如何获取用于标签的输入元素ID

Joh*_*ika 10 ember.js ember.js-view

我有一个场景,我不能在输入元素周围包装标签,所以它必须看起来像这样:

<label>Name</label>
{{input value=name}}
Run Code Online (Sandbox Code Playgroud)

我想设置标签的属性以匹配输入元素的ID,以便渲染的输出是这样的:

<label for="ember351">Name</label>
<input type="text" value="" id="ember351" />
Run Code Online (Sandbox Code Playgroud)

如何获取元素ID的引用?我已经看到了一些使用Ember.TextField视图的解决方案,但我正在寻找支持输入帮助器的解决方案(即{{input}})

Cy *_*y K 12

您可以使用组件/视图ID作为前缀,将输入元素的自定义ID范围限定为当前视图.这有助于您避免在视图外命名冲突.你需要一个concat帮助器(包含在Ember v1.13.x中).或者你总是可以创建一个.

<label for="{{concat elementId '-name'}}">Name</label>
{{input value=name id=(concat elementId '-name')}}
Run Code Online (Sandbox Code Playgroud)

应该呈现如下:

<label for="ember351-name">Name</label>
<input type="text" value="" id="ember351-name />
Run Code Online (Sandbox Code Playgroud)