2013-10-29 3 views
0

개념 증명을 위해 컨트롤러 x의 값 하나를 응용 프로그램 컨트롤러에 바인딩하려고했습니다.엠버 바인딩 컨트롤러 값을 응용 프로그램 컨트롤러

보다 구체적으로, title 속성을 응용 프로그램 컨트롤러의 해당 title 속성에 바인딩했습니다.

그러나 작동하지 않으며 그 이유를 알 수 없습니다.

window.App = Ember.Application.create(); 

App.SiteController = Ember.ObjectController.extend({ 
    needs: "application", 
    titleBinding: "controllers.application.title" 
}); 

App.IndexController = App.SiteController.extend({ 
    init: function() { 
     this._super(); 
     this.set("title", "Home"); 
    } 
}); 

http://jsbin.com/ucanam/1743/edit

내가 잘못 바인딩을 이해 했습니까?

답변

1

init 메서드 내에서 바인딩이 업데이트되지 않으므로이 템플릿이 변경되지 않습니다. 일부 함수를 on('init')으로 등록해야하므로 객체가 초기화 된 후에 호출됩니다.

다음과 같은으로 인 IndexController를 대체 할 수

:

App.IndexController = App.SiteController.extend({ 
    setupTitle: function() {   
     this.set("title", "Home"); 
    }.on('init') 
}); 

내가이 구현하여 jsbin 업데이트 http://jsbin.com/ucanam/1745/edit

관련 문제