2013-03-31 1 views
9

Im appena iniziando backboneJs.Convalida backbone non funzionante

Ho fatto un semplice esempio utilizzando VisualStudio2012. Ho aggiunto il backbone.

nei miei main.js

var Person = Backbone.Model.extend({ 
defaults: { 
    name: 'Mr Steel', 
    age: 26, 
    occupation: 'FrontEnd Web Developer' 
}, 

validate: function(attrs) { 
    if (attrs.age < 0) { 
     return 'Age must be a positive number.'; 
    } 
}, 

work: function() { 
    return this.get('name') + ' is working.'; 
} 
}); 

Ma quando vado al browser> console. E digitare quanto segue in .. convalida non viene nemmeno attivato.

var person = new Person(); 
person.get('age');//26 
person.set('age', -25);//sets -25 

E imposta l'età a -25. quello è strano!! per favore aiuto.

risposta

20

È necessario passare il parametro {validate:true} al metodo set ad es.

person.set('age', -25, {validate:true});

+0

opere, byt ho visto in video WHR per la squadra di PERSONE passa {convalidano: true} e funziona ancora – STEEL

+7

@STEEL sì, nel vecchio metodo versione Backbone 'set' invoca' metodo validate' automaticamente. Ma ora la convalida è disabilitata per impostazione predefinita. –