如何在嵌套对象定义中引用Ember.js对象?

时间:2013-02-01 03:57:17

标签: ember.js

我正在研究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定义。

1 个答案:

答案 0 :(得分: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()
});