Quiero construir un cliente para mi servicio REST usando Knockout.js. Tengo muchos repositorios al que quiero acceder a través de diferentes URL, así que se me ocurrió esta solución usando Revealing-Prototype-Pattern. Mi problema : No puedo encontrar la forma de mapear la propiedad Items con mis "datos" que recibo de mi servicio.Knockout.js mapeando un JSON en un array observable
var Repository = function (url) {
this.Url = url;
this.Items = ko.observableArray([]);
this.PendingItems = ko.observableArray([]);
};
Repository.prototype = function() {
var
getAllItems = function() {
var self = this;
$.getJSON(self.Url, function (data) {
// data=[{"Id":1,"Name":"Thomas","LastName":"Deutsch"},{"Id":2,"Name":"Julia","LastName":"Baumeistör"}]
ko.mapping.fromJS(data, self.Items);
});
},
...
// i call it like this:
customerRepository = new Repository('http://localhost:9200/Customer');
customerRepository.getAllItems();
Creo que el problema está en esto: ko.mapping.fromJS (datos, self.Items); pero no puedo encontrar la manera correcta de hacerlo.
Pregunta: ¿Qué estoy haciendo mal? He encontrado un ejemplo - y están haciendo lo mismo, creo: http://jsfiddle.net/jearles/CGh9b/
Para referencia de todos, el literal de objeto medio vacío en este ejemplo es un marcador de posición vacío para el objeto de opciones de asignación. – pimbrouwers