所以我从服务器接收 JSON,看起来像:
{
data: [
{
foo: "hello",
bar_id: "92934848202"
},
{
foo: "hello again",
bar_id: "39393020201"
},
]
}
我正在使用映射插件将其读入名为 self.data 的 observableArray 中,例如:
self.data(ko.mapping.fromJS(json).data());
我有另一个名为 bar 的模块,它从服务器读取所有 bar 及其 ID。我在 bar 中有一个方法,它能够使用一个名为 find 的方法返回一个对象。所以
bar.find("39393020201") // returns object
但我真正想做的是让 self.data observableArray 能够直接访问 bar,方法是:
self.data()[0].bar // ideally returns object?
到目前为止,我能得到的最接近的是添加这样的自定义函数:
ko.observable.fn.bar = function() {
return bar.find(this());
};
但这要求我打电话
self.data()[0].bar_id.bar
这不是很漂亮。但是我添加到 observableArray 的任何函数都对整个数组而不是该数组中的特定对象进行操作。还有其他建议吗?