1

我想将 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')
});

到目前为止,我能得到的最好的就是用valueBindingpath替换_parentView.context.。如果我这样做,文本字段会被渲染并且它们包含正确的值。如果我编辑它们,则应用程序的其余部分不会更新。

您将如何在当前版本的 Ember 中解决这个问题?

编辑: 链接问题中给出了对我想要做的更好的解释。我在当前上下文中有一个对象(比如说object)和一个字符串( )。key我想要一个可以显示和呈现object[key].

4

3 回答 3

5

经过多次失败的尝试,我找到了一个非常简单的解决方案。

添加助手

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助手可以理解的所有可选参数。

于 2014-04-28T19:50:21.693 回答
1

您现在可以在 mut 助手的帮助下将输入值与对象的动态键(变量)绑定。

https://guides.emberjs.com/v2.6.0/templates/input-helpers/#toc_binding-dynamic-attribute

我们可以像这样在输入助手中绑定键,

{{input value=(mut (get Object key))}}
于 2016-06-22T11:02:42.020 回答
-1

有点不清楚您的用例是什么,但假设您只是想对文本字段进行基本绑定,那么绑定值的最简单方法是使用输入助手:

在您的模板中,您将使用:

{{input type="text" value=inputTextValue}}

inputTextValue您将值绑定到的属性在哪里。然后在您的控制器中,您可以访问该inputTextValue属性以获取用户输入的值,或设置显示给用户的值。

这是一个工作小提琴:

http://jsfiddle.net/NQKvy/940/

您可以在此处的 Ember 文档中找到有关输入助手的更多信息:

http://emberjs.com/api/classes/Ember.Handlebars.helpers.html#method_input

希望有帮助。

于 2014-04-27T23:13:25.213 回答