Javascript 设置Ember.textfield的ID

Javascript 设置Ember.textfield的ID,javascript,ember.js,Javascript,Ember.js,我面临在Ember.Textfield中设置id的问题。我们有一个从Em.Object扩展而来的模型类 我试图通过控制器在HBS(车把)中访问它,就像在Ember文本字段中的ViewData.id.id1。但是模型没有设置id {{view Ember.TextField valueBinding="value" id=ViewData.id.id1}} 我正在使用以下用于余烬和把手的库: (handlebars-1.0.0-rc.3.js) (ember-v1.0.0-rc.1.min

我面临在Ember.Textfield中设置id的问题。我们有一个从Em.Object扩展而来的模型类

我试图通过控制器在HBS(车把)中访问它,就像在Ember文本字段中的
ViewData.id.id1
。但是模型没有设置id

 {{view Ember.TextField valueBinding="value" id=ViewData.id.id1}}
我正在使用以下用于余烬和把手的库:

 (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
属性设置视图的
id
属性:

{{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。

elementIdBinding可以工作

我们需要用如下属性索引重新打开Ember.TextField

Ember.TextField.reopen({ attributeBindings:['elementId'] });

hbs将具有以下代码

{{view Ember.TextField valueBinding=“data”elementIdBinding=“ViewData.id.id1”}

它有效


干杯

你试过用引号写吗?id=“ViewData.id.id1”如果这不能解决问题,我想您必须使用绑定->id=“ViewData.id.id1”