gpt4 book ai didi

ember.js - 使用 ember-data 在 ember.js 中处理路由错误时出错

转载 作者:行者123 更新时间:2023-12-04 19:05:39 25 4
gpt4 key购买 nike

我正在尝试使用 ember.js 和 ember-data 创建一个应用程序,使用以下版本:

DEBUG: Ember      : 1.7.0
DEBUG: Ember Data : 1.0.0-beta.9
DEBUG: Handlebars : 1.2.1
DEBUG: jQuery : 2.1.0

我正在使用 RESTAdapter 连接到我使用 node.js 编写的 api。

一旦我加载应用程序,我就会不断收到以下错误:
Error while processing route: students undefined is not a function TypeError: undefined is not a function
at http://localhost:9000/scripts/vendor/ember-data.js:12006:34
at tryCatch (http://localhost:9000/scripts/vendor/ember.js:45818:16)
at invokeCallback (http://localhost:9000/scripts/vendor/ember.js:45830:17)
at publish (http://localhost:9000/scripts/vendor/ember.js:45801:11)
at http://localhost:9000/scripts/vendor/ember.js:29069:9
at DeferredActionQueues.invoke (http://localhost:9000/scripts/vendor/ember.js:634:18)
at Object.DeferredActionQueues.flush (http://localhost:9000/scripts/vendor/ember.js:684:15)
at Object.Backburner.end (http://localhost:9000/scripts/vendor/ember.js:147:27)
at Object.Backburner.run (http://localhost:9000/scripts/vendor/ember.js:202:20)
at apply (http://localhost:9000/scripts/vendor/ember.js:18382:27)

这是我正在使用的代码(按粘贴顺序加载):

app.js
var App = window.App = Ember.Application.create({
LOG_ACTIVE_GENERATION: true,
LOG_TRANSITIONS: true,
LOG_TRANSITIONS_INTERNAL: false,
LOG_VIEW_LOOKUPS: true
});

store.js
App.ApplicationAdapter = DS.RESTAdapter.extend({
host: 'http://localhost:3000',

serializer: DS.RESTSerializer.extend({
primaryKey: function(type) {
return '_id';
},

serializeId: function(id) {
return id.toString();
}
})
});

模型/student.js
App.Student  = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
nationality: DS.attr('string'),
createdAt: DS.attr('date')
});

路线/app_route.js
App.StudentsRoute = Ember.Route.extend({
model: function() {
return this.store.find('student');
}
});

router.js
App.Router.map(function () {
this.resource('students', {path: '/'});
});

以下是 API 的响应:
{
students: [
{
nationality: "Lorem",
lastName: "Doe",
firstName: "John",
_id: "53f87200f3750319b4791235",
createdAt: "2014-08-23T10:50:40.661Z"
},
{
nationality: "Lorem",
lastName: "Doe",
firstName: "John",
_id: "53f87299f3750319b4791234",
createdAt: "2014-08-23T10:50:40.661Z"
}
]
}

看起来商店没有从 API 加载数据,但 JSON 数据格式看起来不错。知道什么可能是错的吗?

谢谢!

最佳答案

因此,在 Stack Overflow 上搜索了更多信息后,我发现序列化程序现在必须位于与 RESTAdapter 不同的类中,因此工作代码如下:

store.js

App.ApplicationAdapter = DS.RESTAdapter.extend({
host: 'http://localhost:3000'
});

App.ApplicationSerializer = DS.RESTSerializer.extend({
primaryKey: '_id',
serializeId: function(id) {
return id.toString();
}
});

关于ember.js - 使用 ember-data 在 ember.js 中处理路由错误时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25530169/

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