使用商店时的Ember Data 404

时间:2018-05-27 21:54:58

标签: ember.js ember-data

Ember.js的新手,制作一个简单的待办事项应用程序,以便更好地学习它。

Could not resolve all files for configuration ':classpath'. Could not find com.android.tools.build:gradle:3.1.2. Searched in the following locations: https://jcenter.bintray.com/com/android/tools/build/gradle/3.1.2/gradle-3.1.2.pom https://jcenter.bintray.com/com/android/tools/build/gradle/3.1.2/gradle-3.1.2.jar 我有:

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');
  },
});

这个错误是什么意思?

1 个答案:

答案 0 :(得分:1)

findAll将始终向API服务器发出请求。如果它不存在或无法访问,则会返回404.如果您只想在商店中引用数据而不提出API请求,请使用peekAll

404也会导致在路径中抛出错误状态并拒绝模型。这是我解决的一种方法,当没有数据时,它会抛出404s(而不是200,如果没有数据):

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