如何从 app.showdialog传递信息



从我的一个名为"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
}
}

相关内容

  • 没有找到相关文章

最新更新