EmberJS自定义文本框视图ID-suffix
EmberJS Custom Textbox View with ID-suffix
让我们假设我有这个Ember。ArrayController:
App.ItemsArrayController = Ember.ArrayController.extend({
//some additional functions
}).create()
这个数组控制器保存的对象是:
App.Item = Ember.Object.extend({
id: 0, //after item is loaded this id contains real id of item
value: "some value"
})
在车把模板我有:
{{#each item in App.ItemsArrayController}}
<input id="item" valueBinding="item.value" />
{{/each}}
您可以看到,根据控制器中项目的数量,该输入生成x次。这样做的问题是,所有这些输入都有相同的ID"item"。我不能使用这样的字符:
<input id="item-{{item.id}}" valueBinding="item.value" />
因为句柄{{}}将值包装到ember metamorph脚本包装器和句柄{{{}}}的工作方式相同。
我想做的是自定义视图我可以这样使用:
{{view App.TextFieldWithIdSuffix id="item-" idSuffixBinding="item.id" valueBinding="item.value"}}
,它应该呈现为:
<input type="text" id="item-0" value="some text" />
我的视图App.TextFieldWithIdSuffix被定义为:
App.TextFieldWithIdSuffix = Ember.View.extend({
tagName: "input"
});
如何定义App.TextFieldWithIdSuffix视图,以支持xxxBindings属性,并在渲染时使用后缀改变id ?
尝试以下操作。
在控制器上,只需添加:
idFormat: function(id) {
return "item-" + id;
}
然后把你的输入标签写为:
<input id={{idFormat item.id}} valueBinding"item.value" />
您应该使用bind-attr帮助器
http://emberjs.com/guides/templates/binding-element-attributes/车把
<input type="text" {{bind-attr id="idFormat" }} value="some text" />
idFormat: function(id) {
return "item-" + id;
}
哦,虽然上面解决了你的直接问题,但你可能想要根据你正在做的事情使用输入帮助器。
http://emberjs.com/guides/templates/input-helpers/我最终得到了这样的解决方案:将文本框ID的计算移到Item模型。
车把:
<input {{bind-attr id="item.textboxId"}}
type="text" {{bind-attr value="item.value"}} />
安贝模型:
App.Item = Ember.Object.extend({
id: 0, //after item is loaded this id contains real id of item
value: "some value",
textboxId: function () {
return "item-" + this.get("id");
}.property("id")
});
相关文章:
- Ember eror试图注册一个id已在使用的视图
- 如何在另一个视图中获取元素的引用id-UI5
- 剑道ui树视图dragend获取节点id
- 如何以编程方式获取属性Id、视图Id和帐户Id
- 获取Backbone中另一个视图的id
- 如何使用JQuery.Load访问Div中加载URL的UL“id”,“name”等,以设置JQuery树视图
- 父页面中的 JQuery 未在部分视图中检测到 id 元素
- 如何使用代码点火器根据传递的 ID 在引导模式中加载视图
- 获取用户控件网格视图的 ID
- 获取在视图实例中定义的具有特定 ID 的数据
- 在钛合金调音器中设置视图和文本视图的 ID
- 使用主干视图在模板上动态添加 ID 和类
- 主干嵌套视图找不到 id 选择器
- 未捕获错误:断言失败:尝试注册具有已在使用的 ID 的视图:名称
- 由于 ID 更改绑定,主干视图呈现两次
- 对控制器的两个不同视图中的任何元素使用相同的id
- Angular JS中视图的访问ID
- JavaScript滚动当前视图's元素id
- 如何将视图'id设置为模型'id
- EmberJS自定义文本框视图ID-suffix