2012-02-20 5 views
2

Je développe une application web et ai décidé d'aller avec knockout.js pour gérer l'interface utilisateur et les liaisons côté client. Vraiment l'aimer jusqu'à présent, mais j'ai quelques questions concernant ko.observables. Ma charge utile intial de données ressemble à:knockout.js - observables sur un grand nombre d'objets de données

{ 
    clients: [{id:1, fname:'foo', lname:'bar', email:'...', ...}, ...]}, 
    appointments: [{...appointment object...}, ...] 
} 

tout objet dans les données ci-dessus peut contenir beaucoup de données, facilement plusieurs centaines d'objets comme ceux ci-dessus, chaque objet contenant 10 - 15 propriétés. À l'heure actuelle, sur mes applications init, je fais quelque chose comme:

$.each(clients, function (idx, client) { 
    $.each(client, function (property, value) { 
     client[property] = ko.observable(value); 
    }); 

    client[idx] = client; 
}); 

self.clients = ko.observableArray(clients); 

Cela semble fonctionner, mais semble aussi que beaucoup de frais généraux, et je remarque un décalage non négligeable alors que mon application est dans son étape (init pas d'ajax requis, les données sont chargées dans la page quand elles sont rendues). Existe-t-il des modèles pour travailler avec de grands ensembles de données comme celui-ci? Parce que l'un des objets de données ci-dessus peut être modifié, je suppose qu'ils devraient être observables. Merci pour tout pointeur!

Répondre

1

Je suis actuellement à la recherche de ce même problème quand je suis tombé sur votre poste. J'ai ensuite trouvé ce post et l'exemple de blog et jsfiddle. Cela semble être ce que vous (et moi) recherchons.

+1

On dirait que le knockout.mapping.js est ce que je cherche. Devrait automatiquement mapper toutes les propriétés aux observables et toutes les listes à observableArrays. – Greg

Questions connexes