我希望将TextField绑定到由字符串变量指定的属性(参见编辑以获得更好的解释),就像在this question中一样。不幸的是,那里给出的答案已经行不通了。他们在那里使用以下视图:
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')
});到目前为止,我能得到的最好结果是用path _parentView.context.替换_parentView.context.。如果我这样做,就会呈现文本字段,它们包含正确的值。但是,如果我编辑它们,应用程序的其余部分就不会更新。
在当前版本的Ember中,您将如何解决这个问题?
编辑:更好地解释了我想做什么,在链接问题中给出了更好的解释。在当前上下文中,我有一个对象(比如object)和一个字符串(key)。我想要一个可以显示和呈现object[key]值的文本字段。
发布于 2014-04-28 19:50:21
经过多次失败的尝试,我找到了一个非常简单的解决方案。
添加助手
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助手能够理解的所有可选参数。
发布于 2016-06-22 11:02:42
现在,您可以在mut助手的帮助下用对象的动态键(变量)绑定输入值。
我们可以像这样在输入助手中绑定键,
{{input value=(mut (get Object key))}}发布于 2014-04-27 23:13:25
从您的问题中可以看出用例是什么,但是假设您只是试图在文本字段上获得一个基本绑定,那么绑定一个值的最简单的方法是使用输入助手:
在模板中,您将使用:
{{input type="text" value=inputTextValue}}其中inputTextValue是将值绑定到的属性。然后,在控制器中,您可以访问inputTextValue属性以获取用户输入的值,或者设置显示给用户的值。
这是一把有用的小提琴:
http://jsfiddle.net/NQKvy/940/
您可以在这里找到有关Ember文档中的输入助手的更多信息:
input
希望这能有所帮助。
https://stackoverflow.com/questions/23308702
复制相似问题