2013-08-15 2 views
0

내가 이해할 수 있도록 emberjs의 템플릿은 컨트롤러의 데이터를 가져옵니다. 따라서 model 데이터를 가져 와서 템플릿에 표시하는 것은 컨트롤러의 작업입니다.emberjs의 경로와 모델을 연결하는 경우

워드 프로세서 here 연관이 같은 경로와 모델 :

App.FavoritesRoute = Ember.Route.extend({ 
    model: function() { 
    // the model is an Array of all of the posts 
    return App.Post.find(); 
    } 
}); 
이때

ArrayController 자동으로 생성된다.


그러나 여기에는 setupController 기능도 있습니다. here 할 주어진 첫 번째 예제로

App.FavoritesRoute = Ember.Route.extend({ 
    setupController: function(controller) { 
    controller.set('model', App.Post.find()); 
    } 
}); 

: 그래서, 우리는 또한이 작업을 수행 할 수 있습니까?

두 가지 방법이 똑같은가요?

답변

1

두 가지 방법이 같은 일을합니까?

거의. 두 경우 모두 컨트롤러의 content 속성은 App.Post.find()의 결과로 설정됩니다. 그리고 둘 다 일을합니다.

즉, 모델 후크를 사용하는 것이 좋습니다. 모델 후크가 약속을 반환하면 라우터는 계속 진행하기 전에 해결할 때까지 기다립니다. setupController 훅에서는 그렇지 않습니다. 일반적으로 setupController 후크에서 비동기를 피하기를 원할 것입니다.