2012-08-03 1 views
1

Ember.js에서 새 라우팅 기능을 사용할 때보기에 정의 된 속성 및 액션 핸들러가 해당 템플릿에서 액세스 할 수없는 것으로 보입니다. 대신 컨트롤러의 속성 만 사용할 수 있으며 앱은 라우터에서 액션 핸들러를 찾습니다. 여기 라우팅을 사용할 때 뷰 속성 및 액션 핸들러에 어떻게 액세스합니까?

문제의 예입니다 : http://jsfiddle.net/InMatrix/wtUML/3/

당신은 내 프로필을 클릭하면 ---> 사진 ---> 테스트, 당신은 콘솔에서이 오류를 얻을 것이다 :

수를 상태root.profile.photos의 이벤트 testButton에 응답하지 않습니다.

App.PhotosView에 정의 된 다음 동작 처리기는 이벤트에서 사용할 수 없습니다.

App.PhotosView = Em.View.extend({ 
    templateName: 'photos', 
    testButton: function(){ 
     alert('test Button');     
    } 
}); 

관련 뷰 클래스에서 액션 핸들러를 유지할 수있는 방법이 있습니까? 내가 놓친 게 있니?

답변

3

동작의 기본 컨텍스트가 라우터로 변경되었습니다.

다음
<button {{action testButton target="view"}}>test</button> 

이 바이올린의 작업 버전입니다 : 당신이 작업을 처리하기 위해보기를 원하는 경우,이처럼 지정해야 http://jsfiddle.net/wtUML/4/

+0

감사합니다! 그게 내가 원하는거야. FWIW, 뷰 속성에 액세스하는 방법을 찾았습니다. "뷰"를 추가하십시오. 속성 이름 앞에 {{view.property}}. – Tao

+0

예, 컨텐트 컨텍스트가 컨트롤러로 변경되었습니다. 변화에 발 맞추기가 어렵습니다. – buuda

관련 문제