2017-02-19 2 views
0

Ich versuche, Formularvalidierung mit ember-cp-validations hinzuzufügen und die grundlegenden Schritte in ihrer videoTypeError: user is null in der Konsole zu folgen. Ich bin sehr neu zu ember und ich bin sicher, dass es etwas sehr einfaches ist, das ich übersehe.Getting 'TypeError: Benutzer ist null' beim Versuch, Formular mit ember-cp-Validierungen zu validieren

Register-Form Komponente

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    user: null, 

    actions: { 
    save() { 

     let user = this.get('user'); 

     user.validate() 
     .then(({ validations }) => { 

      if (validations.get('isValid')) { 
      user.save(); 
      } else { 
      alert("not valid"); 
      } 

     }); 
    } 
    } 
}); 

Benutzermodell

import DS from 'ember-data'; 
import { validator, buildValidations } from 'ember-cp-validations'; 

const Validations = buildValidations({ 
    firstname: validator('presence', true), 

    email: [ 
    validator('presence', true), 
    validator('format', { type: 'email' }) 
    ], 

    username: validator('presence', true), 

    password: [ 
    validator('presence', true), 
    validator('length', { 
     min: 4 
    }) 
    ] 
}); 

export default DS.Model.extend(Validations, { 
    firstname: DS.attr('string'), 
    email:  DS.attr('string'), 
    username: DS.attr('stirng'), 
    password: DS.attr('string') 
}); 
+0

Sie legen den Benutzer als null fest. Wie übergibt man Benutzer an die Komponente? –

Antwort

1

Sie müssen wie diese neuen Benutzer auf die Komponente zu übergeben:

//routes/users/new.js 
... 
model(){ 
    return this.get('store').createRecord('user'); 
} 
... 

Und in der Vorlage Sie Setzen Sie die Registerkomponente wie folgt:

//templates/users/new.hbs 
{{register-form user=model}} 
+0

Danke, dass es getan hat. Ich werde als Antwort annehmen, nachdem die Mindestzeit verstrichen ist. –

Verwandte Themen