모델 또는 DOM에서 변경된 사항없이 backbone.js "이벤트"를 발생시키는 방법을 찾고 싶습니다.Backbone.js보기 이벤트 올리기
예를 들어 Facebook SDK를 비동기 적으로로드하고 있습니다. auth.login 이벤트에 가입되어 있으며 사용자가 로그인 한 내보기에 메시지를 보내서 적절하게 다시 렌더링 할 수 있습니다.
내보기는이 유사하게 나타납니다 window.view가 존재하는 동안
FB.Event.subscribe('auth.login', function(response){
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
window.signedRequest = response.authResponse.signedRequest;
if (window.view && window.view.setSignedRequest) {
window.view.setSignedRequest(window.signedRequest);
}
}
});
그러나,이 setSignedRequest 방법을 볼 수 없습니다 :
내 페이스 북의 코드에서window.CreateItemView = Backbone.View.extend({
el: $('#content'),
initialize: function() {
this.render();
},
render: function() {
// do something
return this;
},
setSignedRequest: function(signedRequest) {
//do something with signedRequest
}
});
, 나는 이것이 않습니다. 스크립트가 올바른 순서로로드되었는지 확인했습니다. 이상하게도 다른 뷰 객체에도 불구하고 다른 페이지에이 동일한 코드가 있는데 제대로 작동합니다. 나는 이것을 설명 할 차이를 보지 못했습니다.
더 나은 해결책은 일종의 이벤트를 발생시키고 뷰에서 수신 대기하는 것입니다. 그러나 signedRequest는 모델의 속성이 아니어야하므로 모델에서 change 이벤트를 사용하고 싶지 않습니다. 이것을 성취하는 더 좋은 방법이 있습니까?
글쎄,'.trigger()'메소드가 있습니다. 나중에 볼 수있는 맞춤 이벤트를 시청자가들을 수 있도록 설정할 수 있습니다. –