模态变得比我想象的更难:/
让模态正确加载视图/视图模式,单击保存按钮保存信息(我确实从Q.js得到'应该为空:[]',但显然这不是问题?)我遇到的问题可能与承诺有关,但如果是,我找不到它。
家长的观点模型 -
var createNew = function () {
app.showModal(tfcreate).then(function (modalResult) {
if (!modalResult) { return false; }
var templateId = modalResult;
router.replaceLocation('#/templateformedit/' + templateId);
});
};
模态的视图模型 -
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
}
};
如果我按下取消按钮,它被绑定回取消()它关闭就好了,如果我点击保存按钮它会点击保存(),正确保存对象,并到达所有断点但从不关闭。如果我保存后按下取消它再次关闭就好了。我试过在complete()函数期间调用cancel()并且它到达语句,但是再次没有关闭。任何想法???
注意:我可以从模态调用router.replaceLocation,它会改变视图,但是模态会持续到下一个视图。
编辑:我添加了一个禁用的“关闭”按钮,直到isSaving完成并且hasChanges为false并且允许我关闭它并且一切都很好,但这不是必需的,对吧?
答案 0 :(得分:4)
按要求:
您确定this
中的complete()
仍然是您的虚拟机环境吗?尝试在save()和complete()var self=this;
self.modal.close(...)