我想将 TextField 绑定到由字符串变量指定的属性(请参阅编辑以获得更好的解释),如这个问题。不幸的是,那里给出的答案不再有效。他们在那里使用以下视图:
App.AutoTextField = Ember.ContainerView.extend({
type: null,
name: null,
init: function() {
this._super();
this.createChildView();
},
createChildView: function() {
this.set('currentView', Ember.TextField.create({
valueBinding: 'controller.' + this.get('name'),
type: this.get('type')
}));
}.observes('name', 'type')
});
到目前为止我能得到的最好的办法就是更换valueBinding
与路径_parentView.context.
。如果我这样做,文本字段将被渲染并且它们包含正确的值。如果我编辑它们,应用程序的其余部分不会更新。
在当前版本的 Ember 中您将如何解决这个问题?
Edit:链接的问题中给出了我想要做的更好的解释。我有一个对象(比如说object
) 和一个字符串 (key
)在当前上下文中。我想要一个可以显示和呈现值的文本字段object[key]
.
经过多次失败的尝试后,我找到了一个非常简单的解决方案。
添加助手
Ember.Handlebars.helper('dataTextField', function (data, key, options) {
options.hash.valueBinding = 'data.' + key;
return Ember.Handlebars.helpers.input.apply(this, [options]);
});
然后打电话
{{dataTextField data key}}
这将呈现一个文本字段,显示并更改data[key]
它甚至支持所有正常的可选参数input
帮手可以理解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)