2013-04-02 108 views
1

從視圖中的控制器訪問和更改屬性的有效方式是什麼?我在視圖中有多個視圖。我必須更改parentView的屬性,而不必參考this.get('parentView.property'),因爲我經常重複使用視圖並且層次結構發生了很大變化。跨視圖訪問屬性

如何在ember.js中有效地維護視圖間的變量?

回答

1

如果視圖的屬性沒有綁定爲模型,我遵循的一種方法是在視圖之間使用通用控制器並觀察控制器的屬性。

例如,

App.TestController = Ember.Controller.extend({ 
     commonProperty: "Val1" 
    }); 

    App.View1 = Ember.View.extend({ 
     ObserverCommonProperty : function() { 
      //runs code 
     }.observes('controller.commonProperty') 
    }); 
    App.View2 = Ember.View.extend({ 
     didInsertElement: function() { 
      this.get('controller').set('commonProperty',"Val2"); 
     } 
    }); 

這樣你就不會擔心其他視圖對象的存在,並沒有違反任何規則MVC

+0

我們能夠保持內容陣列本身的這些東西。 –

+1

no..content正如你所說的是一個數組......這些屬性可能是不同的類型,並且如果你將一個觀察者放在一個數組上,那麼每當有無關的值發生變化時它就會運行。 – thecodejack