2013-02-01 126 views
0

我正在研究Ember.js類來幫助處理表單。在下面的片段中,我的widget的定義需要綁定到它的value,以便嵌套它的對象的屬性,因此我將綁定設置爲'App.AjaxForm.aField.value'如何在嵌套對象定義中引用Ember.js對象?

有沒有一個不太重複的方式來說這個?

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的定義。

+0

這個問題有點混亂(至少對我來說)。你想要的東西像valueBinding:'parentView.value'。不知道你是如何實現App.Field將很難給出完整的答案。 –

+0

@CoryLoken我想'parentView.value'是類似於我想要的。我用'App.Field'的定義更新了這個問題。它只是一個具有幾個屬性的Ember對象。 – hekevintran

回答

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() 
});