情態動詞都轉向了比我想象的還要困難:/迪朗達爾模態不會關閉
得到了模態裝載了一個視圖/視圖模態正常,點擊保存按鈕保存的信息(我得到一個'從Q.js'應該是空的:[]',但顯然這不是問題?)我遇到的問題可能與承諾有關,但如果是我無法找到它。
家長視圖模型 -
模態的視圖模型 -
var cancel = function() {
this.modal.close(false);
};
var save = function() {
isSaving(true);
setRevisionInfo();
datacontext.saveChanges()
.then(alertMe)
.fail(initFailed)
.fin(complete);
function setRevisionInfo() {
templateForm().revisionLevel(1);
templateForm().createdById(shell.currentUser().id());
templateForm().lastRevisedId(shell.currentUser().id());
var nowDT = moment().format('LL');
templateForm().lastRevisedDT(nowDT);
templateForm().createdDT(nowDT);
}
function alertMe() {
return console.log('done'); // <<< This is firing ok
}
function complete() {
isSaving(false);
this.modal.close(templateForm().id()); // <<< Breakpoint reaches here just fine
}
};
如果我按了取消這勢必回取消()將關閉就好按鈕,如果我點擊保存按鈕save(),正確保存對象,並達到所有斷點,但從不關閉。如果我保存後按取消它關閉就好了。我已經嘗試在complete()函數中調用cancel()並且它到達語句,但是再次不關閉。有任何想法嗎???
注意:我可以從模態中調用router.replaceLocation,它會改變視圖,但模態會持續到下一個視圖。
編輯:我增加了一個按鈕,「關閉」,直到isSaving結束,hasChanges是假的,讓我關閉它,一切就好了被禁用的,但不應該是必要的,對不對?
你確定''this'在'complete()'仍然是你的vm上下文嗎?嘗試'var self = this;'在save()和complete()'self.modal.close(...)的頂部'' – RainerAtSpirit 2013-05-01 18:17:13
就是這樣。如果你能做出這個答案,我會接受謝謝Rainer。 – 2013-05-01 18:33:02