gpt4 book ai didi

ember.js - 断言失败 : You must include an 'id' for account in an object passed to 'push' Ember. js v-2.4

转载 作者:行者123 更新时间:2023-12-02 16:26:58 26 4
gpt4 key购买 nike

我是 Ember 新手,在任何地方都找不到解决我的问题的方法。我已经阅读了 stack 和其他 ember 论坛中的问题,但似乎没有一个对我有用。

我正在尝试创建一个简单的注册表单。我应该注意的是,对于后端我使用 django。这是我的代码:

服务器响应:

[{"username":"user1","password":"123","email":"user1@example.com"},        
{"username":"user2","password":"456","email":"user2@example.com"}]

Ember 模型:

import DS from 'ember-data';

export default DS.Model.extend({
username: DS.attr(),
password: DS.attr(),
email: DS.attr()
});

Ember 适配器: 从“ember-data”导入 DS;

export default DS.RESTAdapter.extend({
host: '/api',
contentType: 'application/json',
dataType: 'json',

headers: {
username: 'XXXX',
password: 'XXXX'
}
});

Ember 序列化器:

import DS from 'ember-data';

export default DS.JSONSerializer.extend({
primaryKey: '_id'
});

Ember 路线: 从 'ember' 导入 Ember;

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();

}
}
});

通过这个实现,我得到了上述错误。任何帮助,将不胜感激。预先感谢您。

最佳答案

你的后端应该用一个ID来响应,即

{"id":123,"username":"user1","password":"123","email":"user1@example.com"}

您实际上并不需要使用序列化器,除非您希望特定字段充当 ID。因此,在上面的示例中,ember-data 期望您的后端返回

{**"_id":123**,"username":"user1","password":"123","email":"user1@example.com"}

或者你可以这样做:

import DS from 'ember-data';

export default DS.JSONSerializer.extend({
primaryKey: 'username'
});

并使用您的用户名作为 ID。

关于ember.js - 断言失败 : You must include an 'id' for account in an object passed to 'push' Ember. js v-2.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36156369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com