2012-07-06 6 views
0

Sur la documentation du site knockout.js ils disent que lorsque vous obtenez des données à partir du serveur, vous pouvez le faire:knockout.js application partielle de JSON

// Every time data is received from the server: 
ko.mapping.fromJS(data, viewModel); 

Je voudrais mapper partiellement les données de retour dans mon modèle d'objet. Est-ce possible?

J'ai un objet enfant viewModel.jobs [i] .JobType, donc je voudrais faire quelque chose comme ceci:

ko.mapping.fromJS(data.jobType, viewModel.jobs[i].JobType); 

... ce qui signifie que je voudrais carte juste dans le jobtype à partir du résultat du serveur dans le champ JobType de ce travail spécifique.

... en gardant à l'esprit:

// does not work because viewModel.jobs[i].JobType() is not a function. 
viewModel.jobs[i].JobType(data.JobType); 
+2

ne voudriez-vous pas 'viewmodel.jobs() [i]', puisque 'jobs' est probablement observable? – Tyrsius

+0

Je récupère uniquement les valeurs de la propriété JobType à partir de la réponse du serveur. Je suppose qu'il est plus logique de retourner l'ensemble du travail? –

+0

En outre, je n'utilise pas viewModel.jobs() [i], j'ai juste une référence directe au travail déjà. –

Répondre

1

Cela a fonctionné:

ko.mapping.fromJS (data.job, viewModel.jobs [i]);

+0

Beau travail, content de pouvoir aider =) – Tyrsius