我面临在 Ember.Textfield 中设置 id 的问题。我们有一个从 Em.Object 扩展的模型类。
我试图通过 Controller 在 HBS(Handlebars) 中访问它,就像 Ember TextField 中的 ViewData.id.id1
一样。但模型没有设置id。
{{view Ember.TextField valueBinding="value" id=ViewData.id.id1}}
我正在为 Ember 和 Handlebars 使用以下库:
(handlebars-1.0.0-rc.3.js)
(ember-v1.0.0-rc.1.min.js)
我们有这样的代码:
Em.ObjectController.extend({
ViewData : data.create()
});
var data = Em.Object.extend({
id: {
id1: "textId1",
},
});
还有其他人遇到过这个问题吗?请协助。提前致谢。
最佳答案
您可以使用 elementId
属性设置 View 的 id
属性:
{{view Ember.TextField elementId="foobar"}}
不幸的是,这不能是计算属性或绑定(bind)。以下内容将不起作用:
{{view Ember.TextField elementIdBinding="id.id1"}}
这也不会:
var TextFieldWithID = Ember.TextField.extend({
elementId: function() {
return this.get('controller.id.id1');
}.property('controller.id.id1')
});
{{view TextFieldWithID}}
问题是 Ember 在创建元素时需要一个唯一的、稳定的 ID,以便它可以设置绑定(bind)。通过将 elementId
属性设置为绑定(bind)或计算属性,您可以说它可以更改。然后,Ember 会忽略该属性并生成自己的唯一 ID。
关于javascript - 设置 Ember.TextField 的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15323524/