0

我正在研究 Ember.js 类来帮助处理表单。在下面的代码片段中,我的定义widget需要将其绑定到它所value嵌套的对象的属性,因此我将绑定设置为'App.AjaxForm.aField.value'.

有没有更少重复的方式来表达这个?

App.Field = Ember.Object.extend({
    // The Ember.js equivalent of ``django.forms.fields.Field``.
    value: null,
    errors: [],
    widget: null
});

App.AjaxForm = App.Form.create({
    action: '/ajax/',
    fields: [
        'aField'
    ],
    aField: App.Field.create({
        widget: Ember.TextField.extend({
            valueBinding: 'App.AjaxForm.aField.value'
        })
    })
});

更新:添加了App.Field定义。

4

1 回答 1

0

这是我的解决方案。

App.Field = Ember.Object.extend({
    // The Ember.js equivalent of ``django.forms.fields.Field``.
    value: null,
    errors: [],
    widget_class: Ember.TextField,
    widget: function () {
        return this.get('widget_class').extend({
            field: this,
            valueBinding: 'field.value'
        });
    }.property()
});
于 2013-02-06T02:02:53.050 回答