J'ai aussi pensé à l'aide d' model.clear()
et model.set()
en conjonction. Ensuite, j'ai couru à travers le problème, que je déclencher l' change
deux fois maintenant.
À l'aide de l' silent
option lors de l'appel d' model.clear()
n'est pas une option, parce que je veux aussi avoir un change
événement déclenché, lorsqu'une propriété devient vide.
J'ai fini avec l'ajout d'un model.reset()
méthode. Il prend une nouvelle attributs de hachage et remplit cette valeur de hachage avec undefined
valeurs pour les vieux attributs des touches de ne pas être présent dans le nouvel attribut de hachage.
Model.prototype.reset = function(attrs, options) {
for (var key in this.attributes) {
if (key in attrs) continue;
attrs[key] = void 0;
}
return this.set(attrs, options);
};
De cette façon, vous réinitialiser les modèles anciens attributs et d'obtenir un valide change
événement pour tous les anciens et nouveaux de l'attribut.