Je voudrais faire une copie profonde du tableau ci-dessous. Et le result
doit uniquement observer la propriété count
.knockout Mapping pour le tableau d'objets, pour certaines propriétés en utilisant 'observer'
data = [{
id: 1,
code: 'ABC',
count: ko.observable(0)
},{
id: 2,
code: 'JKL',
count: ko.observable(5)
},{
id: 3,
code: 'QWE',
count: ko.observable(1)
}]
J'ai essayé mais id
et code
a également été converti en observables. Actuellement, j'utilise le code ci-dessous pour obtenir le résultat attendu.
var obj = ko.mapping.toJS(data);
var result = [];
obj.forEach(function(o){
var obs = ko.mapping.fromJS(o, {
'observe': "count"
});
result.push(obs);
});
// result will give the expected result
Ici, j'ai utilisé forEach
pour boucler chaque objet dans le tableau data
. Y at-il un moyen d'éviter la boucle forEach? ou Comment observer uniquement la propriété count dans le tableau de l'objet.
Merci Ray. Donc, si mes données n'ont pas d'observables (comme mentionné dans la réponse), seule la seconde méthode fonctionne? –
ouais c'est vrai – Ray