2014-12-11 4 views
0

컨트롤러에서받은 데이터를 Ember.js의 다른 경로에서 어떻게 사용할 수 있는지 알아 내려고합니다.Ember에서 컨트롤러 사이의 데이터 전달

App.LoginController = Ember.ArrayController.extend({ 
    ... 
    function successCallback(json){ 
    var userData = json; 
    self.transitionToRoute('dashboard'); 
    } 
    ... 
}); 

나는 인 LoginController이 userData를 검색하고 그것을 사용하려고 해요 :

나는이 같은 컨트롤러, Ajax 호출 성공시를하고있어이 successCallback 함수를 호출 대시 보드보기.

App.DashboardRoute = Ember.Route.extend({ 
    model: function(){ 
    return this.controllerFor('login').get('userData'); 
    } 
}); 

나는 this.controllerFor('login').get('userData');의 결과를 반려했지만 아무 것도 반환하지 않았습니다. 그러나 LoginController에서 전환하기 전에 데이터를 검토하면 데이터가 변수 userData에 할당되었음을 알 수 있습니다.

도움이 될 것입니다.

답변

2

var userData = json;

당신이 방법을 떠나면 범위를 잃는다 지역 변수로 userData를 선언합니다. 당신은 컨트롤러에 userData 속성이 다음 그런 다음, 값이 계속 대시 보드 경로에서 사용할 수

this.set('userData', value);

를 사용하여 설정해야합니다.

작동 예제를 참조하십시오. here

+0

감사합니다. @ kalman-hazins! 그것은 완벽하게 작동했습니다. 범위에 대해서는 분명히 이해할 수 있습니다. – michaellee

관련 문제