2017-01-07 4 views
1

J'essaie d'utiliser le plugin Backbone.validation.
Voici un lien vers ce plugin. https://github.com/thedersen/backbone.validation.plugin backbone.validation. La validation ne fonctionne pas sur le modèle

Je souhaite démarrer une validation lorsque je crée une nouvelle instance de modèle. Normalement, dans la structure centrale devrait mettre en œuvre une fonction validate et quand nous devrions passer {valider: true}

Comment obtenir le même résultat avec ce plugin?

 
    //create picture instance in a controller 
    var model = new Picture({ 
      name: file.name, 
      size: file.size, 
      type: file.type 
    }, {validate: true}); 

//Picture class 
export default Backbone.Model.extend({ 
    defaults: { 
     name: "", 
     size: null, 
     type: "" 
    }, 
    validation: { 
     size: function (size) { 
      if(size > this.MAX_FILE_SIZE;) { 
       return this.onFileSizeError() 
      } 
      return ''; 
     }, 
     onFileSizeError() { 
      //execute this when model size is wrong 
     } 

}); 
+0

est nécessaire d'utiliser probablement _.extend (Backbone.Model.prototype, Backbone.Validation.mixin); –

Répondre

2

Problème résolu

donc dans une documentation de plug-in est une information sur la validation du modèle sans se lier avec vue.

En utilisant la validation des modèles

La philosophie de cette façon d'utiliser le plug-in, est de vous donner un moyen facile à mettre en œuvre la validation sur tous vos modèles sans besoin de se lier à une vue. Bien sûr, si vous utilisez cette option, les rappels pour mettre à jour la vue ne sont pas exécutés, car il est impossible de savoir à quelle vue un modèle appartient .

Validation mélange dans

Pour ajouter la validation à vos modèles, mélanger à la validation sur prototype du modèle.

 _.extend(Backbone.Model.prototype, Backbone.Validation.mixin);

On peut donc créer un fichier avec un modèle de base qui sera étendre Backbone.Model.prototype. Maintenant, chaque nouvelle classe devrait être prolongée par notre modèle de classe.

A partir de maintenant, nous pouvons utiliser un validation.plugin sur notre exemple