So JSON Ich erhalte von dem Server, der so etwas wie folgt aussieht: Ich lese es in ein observableArray self.data mit dem Mapping-Plugin namensErstellen einer has_one Art Beziehung in knockout.js
{
data: [
{
foo: "hello",
bar_id: "92934848202"
},
{
foo: "hello again",
bar_id: "39393020201"
},
]
}
wie :
self.data(ko.mapping.fromJS(json).data());
Ich habe ein anderes Modul namens bar, die alle Bars vom Server zusammen mit ihren IDs liest. Ich habe eine Methode in bar, die ein Objekt mit einer Methode namens find zurückgeben kann. So
bar.find("39393020201") // returns object
Aber was würde ich wirklich tun möchte, ist das die self.data haben observableArray der Lage sein, direkt bar zugreifen, indem Sie etwas tun, wie:
self.data()[0].bar // ideally returns object?
Der nächstgelegene ich waren Lage so weit zu bekommen, ist eine benutzerdefinierte Funktion wie folgt hinzuzufügen:
ko.observable.fn.bar = function() {
return bar.find(this());
};
Aber das verlangt, daß ich
nennenwas nicht sehr hübsch ist. Aber jede Funktion, die ich observableArray hinzufüge, wirkt auf das gesamte Array und nicht auf ein bestimmtes Objekt in diesem Array. Irgendwelche anderen Vorschläge?
Dank Niko, ich war für eine saubere Art und Weise der Hoffnung .. vielleicht werde ich Knockout Gabel und sehen, ob ich etwas in aufbauen können. –