2013-02-12 2 views
2

에서 다른 컨트롤러에서 컨트롤러의 모델을받을 수 있나요 : 이것은 잘 작동어떻게 내가 현재이 일을하고 컨트롤러 내에서 Ember.js

controller.transitionTo('listing', App.Listings.find(1)); 

. 컨트롤러에서 다른 컨트롤러의 모델에 액세스 할 수있는 방법이 있는지 알아 보려면 '응용 프로그램'을 참조 할 필요가 없습니다. Ember 권장 모범 사례가 아닌 것 같습니다. 나는 modelFor()가 있지만 경로에서만 작동하는 것 같다.

답변

2

모델은 컨트롤러의 콘텐츠로 설정되므로 컨트롤러에서 모델은 콘텐츠입니다. (물론 경로에서 controllerFor() 메서드를 재정의하지 않는 한).

컨트롤러에서 컨트롤러에 액세스 할 수있게하려는 컨트롤러 인스턴스 (클래스가 아닌)의 이름을 나열하는 needs 배열을 정의해야합니다. 당신이 할 필요가 없습니다 (

needs: ['post'] 

그런 다음이 controllers.post를 통해이 컨트롤러 내부에 볼 수 있습니다하십시오 CommentsController는 PostController에 액세스 할 수 있도록

그래서 당신은 당신의 CommentsController 정의 내에서, 이런 식으로 정의 할 사용 모델) 컨트롤러가 ObjectController 또는 ArrayController의 인스턴스라면 콘텐트에 대해 걱정할 필요조차 없으며 콘트롤러는 콘텐트/모델로 프록시 할 것입니다.

의견을 게시하는 관계는 라우터 (특히 자원 및 경로 정의 방법)에 의해 결정됩니다.

또한 소스 코드 외부에서 읽는 좋은 출발점 : http://darthdeus.github.com/blog/2013/01/27/controllers-needs-explained/

관련 문제