在Ember JS中从REST服务器而不是本地缓存加载数据

在Ember JS中从REST服务器而不是本地缓存加载数据,rest,ember.js,ember-data,Rest,Ember.js,Ember Data,在EmberJS REST适配器场景中,我有以下模型: App.Brand = DS.Model.extend({ name: DS.attr('string'), models: DS.hasMany('model', {async: true}) }); App.Model = DS.Model.extend({ name: DS.attr('string'), brand: DS.belongsTo('brand') }); 然后我有一个获取单一品牌记录的途径: App.BrandRo

在EmberJS REST适配器场景中,我有以下模型:

App.Brand = DS.Model.extend({
name: DS.attr('string'),
models: DS.hasMany('model', {async: true})
});

App.Model = DS.Model.extend({
name: DS.attr('string'),
brand: DS.belongsTo('brand')
});
然后我有一个获取单一品牌记录的途径:

App.BrandRoute = Ember.Route.extend({
model: function (params) {
    return this.store.find('brand', params.brand_id);
}
});
以及获取所有品牌记录的路线:

App.BrandsIndexRoute = Ember.Route.extend({
model: function () {
    return this.store.findAll('brand');
}
});
我的问题如下:如果我触发App.BrandRoute重新加载页面,Ember会向REST服务器(brands/[brand_id])发出AJAX请求,并获取所有数据,包括关系。如果我首先从触发App.BrandsIndexRoute的索引页开始,然后如果我使用应用程序中的链接触发App.BrandRoute,它不会从REST服务器获取数据,而是使用本地缓存数据,没有关系(这是因为关系仅在REST服务/brands/[brand_id]中可用)而不是在显示所有没有关系的品牌的服务/品牌中。当我显示单个品牌时,如何强制Ember从服务器而不是本地缓存加载数据


提前谢谢!

将.findAll('brand')更改为.find('brand'))@fanta我很抱歉,但它没有改变任何东西。当我转到索引路径时,它会加载所有品牌而没有关系,当我从该路径转到单品牌视图时,它会从缓存中获取模型。只有当我重新加载页面时,它才会从rest服务器加载记录……啊,我现在明白你的要求。那么,你想获取t吗他再次建模?这是因为你想加载所有关系,等等。好吧,如果你想重新加载我们的模型,我想你能做的是传递品牌的id,而不是对象,这样品牌路径中的“模型”钩子将再次执行。我不是很具体,你应该在链接中传递品牌id给助手。@fanta thanks,你理解这个问题。我刚刚试着把链接从{{{{{链接到'brand'this}{{name}{{/link to}}}改为{{{链接到'brand'id}{{{name}{/link to}}但是品牌路径总是从本地获取记录……我可以添加关系'models':[1,2,3]已经在/brands REST服务中,但我希望避免这种情况,因为这可能对服务器性能非常不利