したがって、サーバーから次のような JSON を受信しています。
{
data: [
{
foo: "hello",
bar_id: "92934848202"
},
{
foo: "hello again",
bar_id: "39393020201"
},
]
}
次のようなマッピング プラグインを使用して、self.data という observableArray に読み込んでいます。
self.data(ko.mapping.fromJS(json).data());
バーと呼ばれる別のモジュールがあり、サーバーからすべてのバーを ID と共に読み取ります。find と呼ばれるメソッドでオブジェクトを返すことができるメソッドが bar にあります。そう
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 に追加する関数はすべて、その配列内の特定のオブジェクトではなく、配列全体に対して機能します。他の提案はありますか?