독립 실행 형 자바 스크립트 응용 프로그램에 대해 spine javascript 라이브러리를 사용하고 있습니다. 게시자/구독자 모델을 많이 사용하고 프록시 된 콜백을 척추 모델에 바인딩합니다. 프록시 된 콜백의 바인딩을 해제하려고하면 바인드 해제되지 않습니다. 이는 프록시 된 콜백에서만 발생합니다. listener.bind()
이 그것을 호출되는 데모 코드Spine javascript가 프록시 된 콜백을 바인드 해제 할 수 없습니다.
var Listener = Spine.Model.sub({
onChange : function(){this.log("Hooray!!")},
log:function(msg){console.log("Rxed event"+msg);},
bind: function(){SomeModel.bind("onChange",this.proxy(this.onChange));},
unBind:function(){SomeModel.unbind("onChange",this.proxy(this.onChange));}
});
var listener = new Listener();
올바르게를 결합하여 콜백은 정확합니다. 하지만 listener.unBind()
이 호출되면 바인딩 해제가 발생하지 않습니다.
콜백이 프록시되지 않은 경우 작동하지만 콜백에 대한 올바른 컨텍스트가 필요하므로 프록시해야합니다.
도움을 주시면 감사하겠습니다.
질문에 spine.js 태그를 추가해야합니다. – antonjs
'{} '또는'CTRL + K'로 도구 모음에있는 정확한 코드 하이라이트를 사용하십시오. – Neysor