gpt4 book ai didi

knockout.js - ko.observableArray 支持关联数组

转载 作者:行者123 更新时间:2023-12-03 23:52:39 28 4
gpt4 key购买 nike

有没有更好的(内置的?)方法来混合 observableArray 和关联数组?

viewModel = {
a: ko.observableArray(),
a_assoc: {},
add_item: function(i) {
if (typeof this.a_assoc[i] == 'undefined') {
this.a.push(i);
this.a_assoc[i]=1;
}
}
}

viewModel.add_item('bla');

最佳答案

通常,您会在 Knockout 中执行以下操作:

var viewModel = {
a: ko.observableArray(["a","b","c","d"]),
add_item: function() {
this.a.push("new" + this.a().length);
}
};

viewModel.a_assoc = ko.dependentObservable(function() {
var result = {};
ko.utils.arrayForEach(this.a(), function(item) {
result[item] = 1;
});
return result;
}, viewModel);

因此,您有一个将数组映射到对象的dependentObservable。请注意,每次更新原始数组时,都会重新构建对象。因此,它比您帖子中的方法效率低,但是除非您的对象非常大,否则它是否会导致性能问题值得怀疑。

此处示例: http://jsfiddle.net/rniemeyer/PgceN/

关于knockout.js - ko.observableArray 支持关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6444987/

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