将 ko observables 组合成一个 ko observable 数组

Posted

技术标签:

【中文标题】将 ko observables 组合成一个 ko observable 数组【英文标题】:combine ko observables into a ko observable array 【发布时间】:2020-09-14 15:44:49 【问题描述】:

我目前有两个 observables 我想合并到一个数组中发送到我的后端应用程序进行处理,它们是:

self.ElementData = ko.observable(localStorage.getItem('ElementDataWidget'));
self.scorecardIDLocalStorage = ko.observable(localStorage.getItem('scorecardId'));

我的问题是我的后端只接受一个参数,而不是两个。我将如何合并这两个?我已经开始使用这段代码,但我对它感到困惑。

self.ElementData = ko.observable(localStorage.getItem('ElementDataWidget'));
self.scorecardIDLocalStorage = ko.observable(localStorage.getItem('scorecardId'));
self.LocalstorageData = ko.computed(function()
    var tempStorage = [];

    ko.Utils.arrayForEach(self.ElementData(), function(item)
        tempStorage.push(
        )
    )
)

【问题讨论】:

为什么必须是可计算数组?你有一个被调用的函数,API 调用它,对吗?此时,只需将两个可观察对象组合成一个对象,然后发送到后端。 只要我能得到它作为一个组合我可以使用任何方法,我对 Knockout 很陌生,你能告诉我我应该如何组合它们@Yanchi 【参考方案1】:

我没有测试它,但至少缺少两件事:

self.LocalstorageData = ko.computed(function()
    var tempStorage = [];

    ko.Utils.arrayForEach(self.ElementData(), function(item)
        tempStorage.push(
        )
    )
    return tempStorage // <--- !!
, this) // <--- !!

【讨论】:

以上是关于将 ko observables 组合成一个 ko observable 数组的主要内容,如果未能解决你的问题,请参考以下文章

KnockoutJS 查找 ko.observable() 长度

如何将从 json 接收到的 ko.observable 字符串解析为整数(数字)值

ko.observable() 修剪结束空格

knockoutjs 图像 src 未从 ko.observable 更新

html 验证在observable上设置的KO验证规则

Web API系列教程3.9 — 实战:处理数据(添加新条目到数据库)