这似乎是一个复杂的场景。但我会试着简单地解释它。
在viewmodel中,我有一个绑定到下拉列表的Observable Array。
(function () {
UserMgmt.PeopleViewModel = WebFramework.BaseViewModel.inherits({
initializeViewModel: function (options) {
this.initializeBinding(options);
},
initializeBinding: function (options) {
.......
.......
this.intGroups = ko.observableArray([]);
.......
getGroupsForSite: function (cb) {
this.setListValue('/GetGroupsForSite', { siteId: '123', startIndex: 0, maxRecordCount: 20 }, this.intGroups, cb);
},
setListValue: function (api, data, observable, cb) {
this.postDataRequest(api, data, function (err, result) { //Gets teh data from service
if (!err && result) {
observable(result.data);
if (cb) { cb(); }
}
});
},
....
)},
现在,从此页面打开一个具有不同viewmodel的弹出窗口,您可以在那里保存新的组信息。
但在关闭模态弹出窗口时,该上一页的dropdown value needs to updated
with this saved value
。
我可以通过observableArray吗?
那么,我可以从这个新的viewmodel更新而不重新加载整个上一页,它只更新下拉列表?
这是第二个视图模型......
UserMgmt.IntrusionGroupListViewModel = WebFramework.BaseViewModel.inherits({
initializeViewModel: function (options) {
this.initializeBinding(options);
},
initializeBinding: function (options) {
this.ErrorMessage = ko.observable("");
this.IsError = ko.observable(false);
SaveNewGroup: function () {
debugger;
//this.setListValue('/GetGroupsForSite', { siteId: '123', startIndex: 0, maxRecordCount: 20 }, this.intGroups, cb);
}
}
如何实现所需的功能?
SaveNewGroup()内应该有什么用?
答案 0 :(得分:0)
实例化两个视图模型的代码应该将第一个viewmodel或其intGroups
成员作为options
之一传递给第二个viewmodel。然后,第二个视图模型可以访问它所需的内容。您可以修改可观察数组,更改将显示在视图中。
如果由于某种原因,没有代码知道两个视图模型,则需要使用Postbox在两者之间进行通信。