gpt4 book ai didi

knockout.js - 如何使用 ko.mapping 只观察一个键

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

我正在尝试使用 knockout 映射插件只观察一个键。数据是一个对象数组:

var data = {
people: [
{id: 1, age: 25},
{id: 2, age: 35}
]
};

只有 age 应该是可观察的。我试过这些选项:

var mappingOptions = {
"observe": [ "people.age" ]
// "observe": [ "people[].age" ]
// "observe": [ "people[0].age" ] // Works, but not what I need
}

The docs显示我可以在特定索引处观察对象的键,但这不是我要找的,因为我的数据是动态的,而且我希望所有对象都可以观察到这个键。不幸的是,这种确切的用法没有记录在文档中(目前,无论如何)。

有人用过这个吗? jsfiddle is here .

最佳答案

由于 observe 选项的集合处理能力有限(因此您需要编写 "observe": [ "people[0].age","people[1] .age", etc ] 以使其像您已经弄清楚的那样工作)推荐的模式是为您的 people 集合使用 create 函数.

在您的自定义 create 创建函数中,您可以使用 { observe: ["age"] } 再次调用 ko.mapping.fromJS作为将创建所需项目的映射选项:

var data = {
people: [
{id: 1, age: 25},
{id: 2, age: 35}
]
};
var mappingOptions = {
people: {
create: function(options) {
return ko.mapping.fromJS(options.data, { observe: ["age"] });
}
}
}
var r = ko.mapping.fromJS(data, mappingOptions);

演示 JSFiddle .

关于knockout.js - 如何使用 ko.mapping 只观察一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18558531/

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