Vérifiez pour voir si quelque chose est un modèle ou d'une collection backbone js
Lorsque vous remplacez épine dorsale de la synchronisation, à la fois de modèle et/ou de la collection .save()/fetch() utilise la même colonne méthode de synchronisation, alors quel est le meilleur moyen de vérifier si ce que l'épine Dorsale.synchronisation reçoit est un modèle ou une collection de modèles?
Comme un exemple:
Backbone.sync = function(method, model, options){
//Model here can be both a collection or a single model so
if(model.isModel()) //there is no isModel or isCollection method
}
Je suppose que je suis à la recherche d'un "coffre-fort" meilleures pratiques bien sûr, je pourrais vérifier pour certains attributs ou des méthodes que seulement un modèle ou d'une collection, mais il semble hackish, ne devrait pas il y avoir une meilleure façon évidente? Et il y a sans doute, je n'arrivais pas à le trouver.
Merci!
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également essayer de
instanceof
comme suit:@fiskers7 réponse travaille avec prolongement en profondeur :
C'est aussi hackish, mais l'épine Dorsale de la collection a une propriété du modèle, et d'un modèle n'est pas -- il est lui-même un modèle.
Peut-être une méthode plus sûre est modèle.la méthode toJSON() et voir si le résultat est un objet ou un tableau. Vous allez probablement modèle.la méthode toJSON() dans votre personnalisé de la colonne vertébrale.la synchronisation de toute façon, même si c'est assez gourmand en ressources, il aurait lieu de toute façon.
length
propriété (seule Collection... ?!?) hier, dans certains encodage rapide! La vérification surmodel
est brillant en comparaison. Haha.Vous pourriez faire quelque chose comme cela.
getBackboneObjectType
, qui ne sera certainement pas la cause de tout les conflits de noms.Je ne suis pas entièrement sûr de savoir comment je me sens à ce sujet car il me semble un peu hackish, mais je ne peux pas vraiment penser à pourquoi il serait super mal en ce moment.
Certainement simple, et plus rapide qu'une "instanceof" vérifier (je suis en supposant que vous n'aurez pas le nom de toutes les autres fonctions "isBBModel/Collection" sur votre objets?)