Ember.js 使用store时的余烬数据404

Ember.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, }, ]; }, }); 但是,

Ember.js新手,制作一个简单的todo应用程序来更好地了解它

在my
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([]);
    }
  )
);