var JavascriptHelper = Backbone.Model.extend("JavascriptHelper",
{}, // never initialized as an instance
{
myFn: function() {
$('.selector').live('click', function() {
this.anotherFn(); // FAIL!
});
},
anotherFn: function() {
alert('This is never called from myFn()');
}
}
);
이 모델을 인스턴스로 사용하지 않으므로 여기서는 일반적인 _.bindAll(this, ...)
접근 방식이 작동하지 않습니다. 어떤 아이디어? 감사.백본 : 콜백 내부의 모델에 대한 'this'에 대한 참조를 유지하는 가장 쉬운 방법
그 .myFn 및 .anotherFn 소품을 가지고 있지만 DOM 요소 인 jQuery는 이벤트 처리기로 전달됩니다. myFn 레벨 (jQuery의 .live에 전달하는 핸들러 함수 외부)에서'var that = this;'를 시도한 다음 핸들러 내부에서'that.anotherFn()'을 사용하면 작동합니다 (Backbone이 명시 적으로 확장 된 객체를 다른 것으로 불행하게 만듭니다.) – Alexander