gpt4 book ai didi

javascript - 从另一个 View 模型更新Knockout Observable Array

转载 作者:行者123 更新时间:2023-11-28 05:30:21 25 4
gpt4 key购买 nike

这似乎是一个复杂的场景。但我会尝试将其简单地分解。

在 View 模型中,我有一个绑定(bind)到下拉列表的可观察数组。

(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(); }
}
});
},
....
)},

现在,从此页面将打开一个弹出窗口,其中具有不同的 View 模型,您可以在其中保存新的组信息。

但是在关闭模式弹出窗口时,previpus 页面的 下拉值需要更新
使用此保存的值

我可以通过 observableArray 来实现吗?

这样,我就可以从这个新的 View 模型进行更新,而无需重新加载整个上一页,它仅更新下拉列表?

这是第二个 View 模型......

   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() 中应该包含什么内容才能使其正常工作?

最佳答案

实例化两个 View 模型的代码应将第一个 View 模型或其 intGroups 成员作为选项之一传递给第二个 View 模型。然后第二个 View 模型就可以访问它需要的内容。您可以修改可观察数组,更改将显示在 View 中。

如果由于某种原因,没有了解这两个 View 模型的代码,您将需要使用 Postbox两者之间进行通信。

关于javascript - 从另一个 View 模型更新Knockout Observable Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39742859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com