如果您只想从模型中获取一个由每个循环的当前值命名的属性,您可以编写如下帮助器:
Ember.Handlebars.helper('input-helper',
function(model, attr) {
return Ember.get(model, attr);
}
);
然后像这样使用它:
{{#each attr in attrs}}
{{input-helper model attr}}
{{/each}}
attr
这将从#each
_model
如果您想将该值绑定到输入,而不是制作助手,您可以制作一个组件或视图来为您执行此操作:
// component that binds 'object.property' to an input field
var InputBinderComponent = Ember.Component.extend({
prop: null, // passed in
obj: null, // passed in
value: null, // local
onValue: function() {
var obj = this.get('obj');
var prop = this.get('prop');
var value = this.get('value');
Ember.set(obj, prop, value);
}.observes('value'),
});
使用input-binder
组件的模板来实际包含输入:
{{input type="text" value=value}}
然后在模板中使用它:
{{#each attr in attrs}}
{{input-binder prop=attr obj=model}}
{{/each}}