Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制余烬数据从服务器重新加载特定记录_Javascript_Json_Rest_Ember.js_Ember Data - Fatal编程技术网

Javascript 强制余烬数据从服务器重新加载特定记录

Javascript 强制余烬数据从服务器重新加载特定记录,javascript,json,rest,ember.js,ember-data,Javascript,Json,Rest,Ember.js,Ember Data,假设我有两个用于发布的嵌套资源。在我的路由器中是这样定义的 this.resource('posts', function () { this.resource('post', {path: '/:post_id'}); }); 每个帖子也可以有多个相关评论 在我的*posts_route.js*中,我设置了如下模型: return this.get('store').findAll('post'); 这会向我的后端api发出GET请求,该api将所有帖子作为json返回。此时,我只

假设我有两个用于发布的嵌套资源。在我的路由器中是这样定义的

this.resource('posts', function () {
    this.resource('post', {path: '/:post_id'});
});
每个帖子也可以有多个相关评论

在我的*posts_route.js*中,我设置了如下模型:

return this.get('store').findAll('post');
这会向我的后端api发出GET请求,该api将所有帖子作为json返回。此时,我只需要基本信息(而不需要注释),因此并非所有数据都包含在返回的json中。稍后,如果我单击某个特定的帖子,我会在我的*post_route.js*中执行此操作:

return this.get('store').find('post', params.post_id);
有了这个,我想做一个新的GET请求,只针对那个特定的职位。但余烬数据不执行新服务器请求。我在当地的商店里找到了它,但没有找到我希望得到的扩展数据


有没有办法强制余烬数据向服务器发出真正的请求?谢谢。

您可以使用
model.reload()
强制向show route发送新的GET请求。您可以在放映路线的
afterModel
挂钩或
setupController
挂钩中执行此操作。如果您确实不想在模型已经加载的情况下再次触发此请求,您可以在模型上定义一个普通的old
reload
属性:

MyModel = DS.Model.extend({
   ... attributes ...
   reloaded: false
})
然后在重新加载完成时将其设置为
true

model.reload().then(function(response) { model.set('reloaded', true'); });

强制余烬数据向服务器发出真实请求的方法如下:

return this.get('store').findAll('post');

store.findRecord('post',1,{reload:true})

如果您首先将post项设置为脏项,该怎么办?请参阅:@DelphiLynx感谢您的回复。我喜欢你的主意,但我不能让它把帖子弄脏。在我找到('post',params.post_id')之前,应该尝试在我的post_路线中弄脏它吗?@DelphiLynx我最终解决了我的问题。这个问题实际上与我提出的有点不同。明天我将编辑我的问题并写下我是如何解决的。再次感谢。@@Oscar,我在应用程序中也做了一件事,就是在我的对象中有一个自定义的脏布尔属性。这样我就可以将整个模型设置为脏的,只切换该属性。只是一个想法:)@DelphiLynx我今天来上班,在解决了问题后感觉很好。然后我发现后端使用的外部api不支持它。所以我要像你建议的那样切换脏布尔值。现在看来是该走的路了。:)谢谢@Nick_Ragaz!你的答案很清楚,为我解决了这个问题。