Assertion Failed: Sie müssen einen 'id' - Konto in ein Objekt übergeben, um 'push' Ember.js v-2.4
Ich bin neu in der Glut, und ich kann nirgends eine Lösung zu meinem problem. Ich habe gelesen, die Fragen, die hier im Stapel und in anderen ember Foren, aber keiner von Ihnen scheint zu funktionieren für mich.
Ich versuche zu schaffen, eine einfache Anmeldeformular. Ich sollte beachten Sie, dass für das backend ich benutze django.
Hier ist mein code:
Server-Antwort:
[{"username":"user1","password":"123","email":"[email protected]"},
{"username":"user2","password":"456","email":"[email protected]"}]
Ember Modell:
import DS from 'ember-data';
export default DS.Model.extend({
username: DS.attr(),
password: DS.attr(),
email: DS.attr()
});
Ember-Adapter:
import DS von 'ember-data';
export default DS.RESTAdapter.extend({
host: '/api',
contentType: 'application/json',
dataType: 'json',
headers: {
username: 'XXXX',
password: 'XXXX'
}
});
Ember Serializer:
import DS from 'ember-data';
export default DS.JSONSerializer.extend({
primaryKey: '_id'
});
Ember Route:
import Glut von 'Glut';
export default Ember.Route.extend({
model() {
return this.store.findAll('account');
}
});
Ember Controller:
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
signup(){
console.log('My username is: ', this.get('username'));
console.log('My password is: ', this.get('password'));
console.log('My email is: ', this.get('email'));
var account = this.store.createRecord('account', {
username: this.get('username'),
password: this.get('password'),
email: this.get('email')
});
account.save();
}
}
});
Mit dieser Implementierung, ich bekomme den oben genannten Fehler. Jede Hilfe würde geschätzt werden. Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre backend reagieren sollten mit einer id, ich.e
Sie nicht wirklich brauchen, um verwenden Sie die serializer, es sei denn, Sie möchten einen bestimmten Bereich zu handeln, wie eine id. So im obigen Beispiel, ember-Daten erwarten würde, dass Ihr backend zurück
Oder Sie könnte so etwas tun:
Und verwenden Sie Ihren Benutzernamen als eine id.
Ich fest, mein Fehler. Das problem war, dass das backend wurde mit username als id, so dass ember konnte es nicht anerkannt.
Festen code für den Ember Serializer ist: