来自我的一个名为" 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>
现在我想从viewModel传递信息&#34; carData&#34; to&#34; carInfo&#34;视图模型。 我怎么能这样做?
答案 0 :(得分:0)
不了解有关您的应用程序结构的更多信息,很难提供任何有意义的解决方案。但是,我建议使用application-wide messaging进行视图模型之间的通信。
为此,我们将方法关闭对话框更改为
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
});
答案 1 :(得分:0)
使用回调来传递对话框中的信息。
例如:
function mulTable(){
window.alert("hello!");
document.write("<table style='border-width:2px;border-color: blue; border-style: solid;'>");
var trs=parseInt(window.prompt("How many rows:",""));
var tds=parseInt(window.prompt("How many cols:",""));
var i=1, j=1;
while(trs>=i){
document.write("<tr style='border-width:2px; border-style: solid;'>");
while(tds>=j){
document.write("<td style='width:30px;background-color:yellow;text-align:center;'>"+i*j+"</td>");
j++;
}
j=1;
document.write("</tr>");
i++;
}
document.write("</table>");
}