javascript - 设置 Ember.TextField 的 ID

标签 javascript ember.js

我面临在 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/

相关文章:

javascript - emberjs 是否有与 Rails `yield :something` 等效的代码?

javascript - 在 console.log 输出中显示冒号

javascript - 有没有办法从动态创建的面包屑中删除 %20?

javascript - Google 图表 API 和 jQuery

javascript - 显示与单独 Controller 关联的模型

javascript - 写作助手: What's the use of the end arguments

javascript - 观察当前时间的 Ember 计算属性

javascript - 在此日期函数中添加天数有什么问题?

javascript - 在 jQuery 中选择 DIV

javascript - 在 Ember.js 中将一个模板加载到另一个模板中