我有一个视图模型,其中包含我要绑定到的 2 个相关(主/详细)数组。
var ViewModel = function (data) {
var self = this;
self.CategoryList = ko.observableArray(data.CategoryList);
self.ItemList = ko.observableArray(data.ItemList);
}
{ categoryID: 1, name: "Red Items" }
其中 Category 是等数组
和 Item 是一个{ itemID: 1, categoryID: 1, name: "Red Widget" }
等数组
我有几个类别,可能有几百个项目。我正在努力解决如何在我的视图模型中以一种可以枚举类别并获取相关项目或跨所有项目并获取类别的方式来表示这些。
在两个列表上维护重复信息似乎效率不高,而且我不想通过网络发送比需要更多的数据。
一种方法:创建 Item 和 Category 对象并修改原型以包含过滤(ko.computed)功能。category.Items()
或者item.Category().Name
,但鉴于我需要加载和保存数据,我不是 100% 如何在 knockout.js 中最好地完成此任务。
我不喜欢简单的 JSON 对象数组。假设我走函数/原型路线,我该如何加载和保存我的对象数组?