我面临在Ember.Textfield中设置id的问题。我们有一个从Em.Object扩展的模型类。
我试图通过Ember TextField中的ViewData.id.id1
控制器在HBS(Handlebars)中访问它。但该模型没有设置id。
{{view Ember.TextField valueBinding="value" id=ViewData.id.id1}}
我正在使用以下库来获取Ember和把手:
(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",
},
});
还有其他人遇到过这个问题吗?请帮助。提前谢谢。
答案 0 :(得分:3)
您可以使用id
属性设置查看elementId
属性:
{{view Ember.TextField elementId="foobar"}}
不幸的是,这不能是计算属性或绑定。以下内容不起作用:
{{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,因此它可以设置绑定。通过使elementId
属性成为绑定或计算属性,您可以说它可以更改。 Ember然后忽略该属性并生成自己的唯一ID。
答案 1 :(得分:0)
elementIdBinding有效。
我们需要使用像此
这样的attributeBindings重新打开Ember.TextFieldEmber.TextField.reopen({ attributeBindings:['elementId'] });
hbs将包含以下代码。
{{view Ember.TextField valueBinding =“data”elementIdBinding =“ViewData.id.id1”}}
它有效!!!!
干杯!!