2014-04-25 3 views
2

부모 컨트롤러에 내 자식 컨트롤러가 액세스 할 수있게하려는 몇 가지 속성이 있습니다.자식 컨트롤러가 ember.js에서 부모 컨트롤러에 액세스하는 방법

그래서처럼 액세스하려면 :

App.ApplicationController = Ember.ObjectController.extend({ 
    prop1: "someProp", 
    prop2: "someotherProp", 
    needs: ["child"] 
}); 

App.ChildController = Ember.ObjectController.extend({ 
    prop1: Ember.computed.alias("parentController.prop1"), 
    prop2: Ember.computed.alias("parentController.prop2"), 
}); 

이 어떻게 이러한 속성을 액세스합니까?

- 편집 내역 --- 내가 필요한 컨트롤러의 인스턴스가 항상 하나만 있다고 가정합니까?

답변

4

needs 배열의 내용에 액세스하려면 this.get ('controllers.some_controller')를 사용하십시오. 위의 내용은 자식이 응용 프로그램 컨트롤러에 액세스 할 수있게하려는 경우 약간 뒤로 향한 것입니다.

App.ChildController = Ember.ObjectController.extend({ 
    needs: ['application'] 
    prop1: Ember.computed.alias("controllers.application.prop1"), 
    prop2: Ember.computed.alias("controllers.application.prop2"), 
}); 
+0

내가 필요한 컨트롤러의 인스턴스가 항상 하나만 있다고 가정합니까? – Nonconformist

+1

Computed.alias는 읽기 전용으로 설정하지 않는 한 양방향 바인딩입니다. 컨트롤러는 몇몇 농구를 뛰어 넘어 몇 가지 인스턴스를 만들지 않는 한 거의 항상 싱글 톤입니다. –

+0

오, 알았어, 고마워. – Nonconformist

관련 문제