backbone.js를 사용하여 응용 프로그램을 개발 중입니다. & jquery. 나는 모델에서 코드를 다음 있습니다 :Backbone.js & jquery - show() 요소
runReport: function() {
this.set({generatingReport: true});
//long computation...
this.set({generatingReport: false});
}
과 (초기화 기능에서) 해당보기에서 다음 코드 :
...
events {
"click #btn-run": "runReport"
}
...
runReport: function() {
this.model.runReport();
}
: 여기
...
var that = this;
...
this.model.bind("change:generatingReport", function() {
if(that.model.get("generatingReport") === true) {
$("#report").empty().append("<h1>Generating report...</h1>").show(0);
console.log("begin");
} else if(that.model.get("generatingReport") === false) {
$("#report").empty().append("<h1>Report generated</h1>").show(0);
console.log("end");
}
});
및 활동을 실행 뷰의 코드는
제 문제는 "Generatin report ..."메시지가 전혀 표시되지 않는다는 것입니다 (로그 메시지가 인쇄 됨). 보고서가 생성되면 "보고서 생성됨"이 나타납니다.
나는 다음과 같은 경우 (IF 지점에서 추가 경고 참조)this.model.bind("change:generatingReport", function() {
if(that.model.get("generatingReport") === true) {
$("#report").empty().append("<h1>Generating report...</h1>").show(0);
console.log("begin");
alert("stop!");
} else if(that.model.get("generatingReport") === false) {
$("#report").empty().append("<h1>Report generated</h1>").show(0);
console.log("end");
}
});
다음 "보고서를 생성하는 것은 ..."표시됩니다. "long computation ..."부분에는 메시지를 숨길 수있는 숨기기 jquery 호출이 없습니다.
어떤 아이디어가 있습니까?
BTW 긴 계산에 약 20 초가 걸리므로 "보고서 생성 중 ..."이 "보고서 생성 됨"으로 즉시 대체됩니다. –
'# report'는 어디에 있습니까? 보기가 제어하는 html의 일부입니까, 일부는'el'입니까? 또는 이미 존재하는 페이지의 다른 부분입니까? –
네, 뷰 컨트롤의 부분입니다 –