2013-04-02 2 views
1

보기에서 컨트롤러의 속성에 액세스하고 속성을 변경하는 효율적인 방법은 무엇입니까? 조회수가 여러 번 있습니다. 내가보기를 자주 재사용하고 계층 구조가 많이 바뀌기 때문에 this.get('parentView.property')을 참조하지 않고 parentView의 속성을 변경해야합니다.보기의 속성 액세스

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

다른 뷰 객체의 존재에 대해 걱정하지 않습니다 및

+0

우리가 콘텐츠 배열 자체 내에서 이러한 일들을 유지할 수있는 MVC의 규칙을 위반하지 않습니다 이쪽으로. –

+1

no ..content로서 당신이 배열 .. 속성은 다른 유형 수 있습니다 또한 당신이 배열에 관찰자를 유지하는 경우, 그것은 관련이없는 가치에 변화가있을 때마다 실행할 수 있습니다 ... – thecodejack