Ember.js 使用store时的余烬数据404
Ember.js新手,制作一个简单的todo应用程序来更好地了解它 在myEmber.js 使用store时的余烬数据404,ember.js,ember-data,Ember.js,Ember Data,Ember.js新手,制作一个简单的todo应用程序来更好地了解它 在myroutes/todos.js中,我有: import Route from '@ember/routing/route'; export default Route.extend({ model() { return [ { title: 'walk the dog', completed: false, }, ]; }, }); 但是,
routes/todos.js中,我有:
import Route from '@ember/routing/route';
export default Route.extend({
model() {
return [
{
title: 'walk the dog',
completed: false,
},
];
},
});
但是,当我更改为:
export default Route.extend({
model() {
return this.get('store').findAll('todo');
},
});
我得到一个错误:
ember-console.js:29 Error while processing route: todos Ember Data Request GET /todos returned a 404
这个错误意味着什么 findAll
将始终向API服务器发出请求。如果不存在或无法访问,它将返回404。如果您只想引用存储区中的数据而不发出API请求,请使用peekAll
404还将导致在路由中抛出错误状态并拒绝模型。这里有一种方法可以解决当没有数据时抛出404的API(而不是带有空数组的200):
API请求应该去哪里?findAll检查存储中是否有数据,如果没有,则生成GETrequest@handlebears啊,好的,如果我没有使用API,那么我应该在存储中设置一个初始值?好的,你可以使用createRecord来创建一些虚拟数据进入存储,如果你根本不需要任何API请求,你可以使用peekAll
return new EmberPromise(resolve =>
this.get('store').findAll('todo').then(
// resolves successfully whether the API call succeeds or fails
todos => resolve(todos),
err => {
console.warn(err);
resolve([]);
}
)
);