gpt4 book ai didi

javascript - 从多个来源到单个列表的 knockout 映射而不删除未列出的项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:34:25 27 4
gpt4 key购买 nike

我有两个数据列表,想将它们合并到一个带有 knockout 映射的列表中。

如果我定义一个要比较的键,这似乎工作正常,除了它删除了最近更新中未列出的项目。

有没有一种方法可以使用 KO 映射到数组,而无需删除最新列表中未出现的项目?

下面的 EG,应该产生:

  • 1 A B
  • 2 AA BB
  • 3AAA
  • 4BB

不是

  • 1 A B
  • 2 AA BB
  • 4BB


<ul data-bind='foreach: mergedList'>
<li>
<span data-bind='text: id'></span>
<span data-bind='text: a'></span>
<span data-bind='text: b'></span>
</li>
</ul>

    var listA = [
{ id: 1, a: 'A'},
{ id: 2, a: 'AA'},
{ id: 3, a: 'AAA'}
];
var listB = [
{ id: 1, b: 'B'},
{ id: 2, b: 'BB'},
{ id: 4, b: 'BBB'}
];

var mapping = {
key: function(data) {
return ko.utils.unwrapObservable(data.id);
},
create: function (options){
var model = new subViewModel();
ko.mapping.fromJS(options.data, {}, model);
return model;
}
}

var subViewModel = function(){
var self = this;
self.a = ko.observable();
self.b = ko.observable();
}

var viewModel = function(){
var self = this;
self.mergedList = ko.observableArray();
}

var vm = new viewModel();
ko.mapping.fromJS(listA, mapping, vm.mergedList);
ko.mapping.fromJS(listB, mapping, vm.mergedList);
ko.applyBindings(vm);

http://jsfiddle.net/BQRur/9/

最佳答案

我知道这个问题已经很老了,所以这可能对卢克没有帮助,但它可能会帮助其他从谷歌来到这里的人(比如我)。最近遇到了类似的问题,在knockout论坛求助: https://groups.google.com/forum/#!topic/knockoutjs/22DzjfgUzMs

祝你好运!

关于javascript - 从多个来源到单个列表的 knockout 映射而不删除未列出的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872539/

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