如何防止ember-data发送请求到服务器?

时间:2016-02-07 16:31:01

标签: javascript ember.js ember-data

我有一条路线,用户可以为您的帐户选择更多选项。但是当我进入这条路线时,ember会向我的API发送一个GET。我如何避免这种情况,因为我提供了我需要的信息。

我使用的是Ember JS 2x。

import Ember from 'ember';

export default Ember.Route.extend({
    searchPlaces: Ember.inject.service(),
    model() {
        return this.store.findAll('user');
    },
    afterModel(model) {
        let token = model.get('token');
        let places = model.get('places');

        this.set('places', places);
        this.set('token', token);
    }
});

2 个答案:

答案 0 :(得分:5)

首先,我建议阅读DS.Store API docs。有四种方法似乎相关:

  • findRecord - 返回Promise,首先尝试内存,然后是API调用
  • findAll - 与findRecord类似,但适用于所有类型的记录
  • peekRecord - 如果已经记录在内存中,则返回记录,如果没有,则返回null;没有进行API调用
  • peekAll - 返回已在内存中的类型记录的Array

如果您想避免API查询,我怀疑您想要在路线中致电store.peekRecordstore.peekAll

答案 1 :(得分:0)

如果您在“某个路径”模板中访问该帐户的某些关系,则可能需要延迟加载它们,这就是GET请求可以触发的原因。

如果您想要删除该请求,可以覆盖model的{​​{1}},并确保不在那里使用some route