我有一条路线,用户可以为您的帐户选择更多选项。但是当我进入这条路线时,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);
}
});
答案 0 :(得分:5)
首先,我建议阅读DS.Store
API docs。有四种方法似乎相关:
findRecord
- 返回Promise,首先尝试内存,然后是API调用findAll
- 与findRecord
类似,但适用于所有类型的记录peekRecord
- 如果已经记录在内存中,则返回记录,如果没有,则返回null
;没有进行API调用peekAll
- 返回已在内存中的类型记录的Array
如果您想避免API查询,我怀疑您想要在路线中致电store.peekRecord
或store.peekAll
。
答案 1 :(得分:0)
如果您在“某个路径”模板中访问该帐户的某些关系,则可能需要延迟加载它们,这就是GET请求可以触发的原因。
如果您想要删除该请求,可以覆盖model
的{{1}},并确保不在那里使用some route
。