情态动词都转向了比我想象的还要困难:/迪朗达尔模态不会关闭
得到了模态装载了一个视图/视图模态正常,点击保存按钮保存的信息(我得到一个'从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