gpt4 book ai didi

javascript - 强制 ember-data 从服务器重新加载特定记录

转载 作者:行者123 更新时间:2023-11-29 22:05:55 24 4
gpt4 key购买 nike

假设我有 2 个嵌套的帖子资源。它在我的路由器中是这样定义的。

this.resource('posts', function () {
this.resource('post', {path: '/:post_id'});
});

每个帖子也可以有多个相关评论。

在我的 *posts_route.js* 中,我这样设置模型:

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

这向我的后端 api 发出 GET 请求,它以 json 形式返回所有帖子。此时我只需要基本信息(没有注释),所以返回的json中并没有包含所有数据。稍后,如果我点击一个特定的帖子,我会在我的 *post_route.js* 中执行此操作:

return this.get('store').find('post', params.post_id);

有了这个,我希望只为那个特定的帖子做一个新的 GET 请求。但是 ember-data 不会发出新的服务器请求。我在它找到它的本地商店中寻找它,但没有使用我希望获得的扩展数据。

有没有办法强制 ember-data 向服务器发出真正的请求?谢谢。

最佳答案

您可以使用 model.reload() 强制对 show 路由发出新的 GET 请求。您可以在显示路线的 afterModel Hook 或 setupController Hook 中执行此操作。如果您真的不想在模型已经加载的情况下再次触发此请求,您可以在模型上定义一个普通的旧 reloaded 属性:

MyModel = DS.Model.extend({
... attributes ...
reloaded: false
})

然后在重新加载完成时将其设置为 true:

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

关于javascript - 强制 ember-data 从服务器重新加载特定记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com