从我的一个名为"carData"的视图模型中,我打开了如下所示的弹出窗口
app.showDialog('viewmodels/task/main', "222").then(function () {
}
现在它打开名为"main"的视图模型,其中包含用于打开对话框的代码
define(['plugins/dialog'],
function (dialog) {
var ctor = function () {
};
ctor.prototype.activate = function (data) {
var self = this;
this.close = function () {
dialog.close(self, "Cancel");
};
};
return ctor;
}
);
此视图模型"main"的视图如下所示,它将调用另一个视图
<div data-bind="compose:'viewmodels/task/carInfo'"></div>
现在我想将信息从视图模型"carData"传递到"carInfo"视图模型。我该怎么做?
不知道有关应用程序结构的更多信息,很难提供任何有意义的解决方案。但是,我建议使用应用程序范围的消息传递进行视图模型之间的通信。
为此,我们将方法关闭对话框更改为
this.close = function () {
app.trigger('dialog:closed', DATA_TO_SEND);
dialog.close(self, "Cancel");
};
现在,在"carInfo"视图模型中,您可以订阅此类消息并在收到消息时执行一些操作。
app.on('dialog:closed').then(function(data){
//do something with the received data
});
使用回调从对话框传递信息。
例如:
app.showDialog('viewmodels/task/main', "222").then(function (action, model) {
if (action == "save") {
// save content from dialog
}
}