gpt4 book ai didi

knockout.js - 计算的 observableArray 不更新 UI

转载 作者:行者123 更新时间:2023-12-04 02:52:04 25 4
gpt4 key购买 nike

我有一个主要的 ko.observableArray,我从它创建了三个计算的可观察数组,并将这三个数组绑定(bind)到 UI。代码是

self.ActiveVisitsList = ko.observableArray();

self.FVL = ko.computed(function () {
return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) {
return o.CsrID == 0;
});
}, self);

self.MVL = ko.computed(function () {
return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) {
return o.CsrID == self.Me().ID;
});
}, self);

self.OVL = ko.computed(function ()
{
return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) {
return (o.CsrID != self.Me().ID && o.CsrID != 0);
});
}, self);

一段时间后,主 observableArray“ActiveVisitorsList”中的一个对象,其 CsrID 从 0 变为其他值,但绑定(bind)的 UI 不反射(reflect)。有什么方法可以手动将 UI 与模型或其他东西重新绑定(bind)以使其正常工作?

谢谢,阿迪尔。

最佳答案

如果你定义CsrIDobservable knockout会自动更新UI。在此你必须修改你的计算:

self.FVL = ko.computed(function () {
return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) {
return o.CsrID() == 0;
});
}, self);

self.MVL = ko.computed(function () {
return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) {
return o.CsrID() == self.Me().ID;
});
}, self);

self.OVL = ko.computed(function ()
{
return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) {
return (o.CsrID() != self.Me().ID && o.CsrID != 0);
});
}, self);

关于knockout.js - 计算的 observableArray 不更新 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13745498/

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