gpt4 book ai didi

ember.js - Ember store.findAll 正在重新加载 View 而 store.query 不是

转载 作者:行者123 更新时间:2023-12-02 14:49:13 24 4
gpt4 key购买 nike

目前,当一篇文章被添加到商店时,当我在我的路由中使用 store.query() 过滤服务器端时,我的 View 不会更新,但当我使用 store.findAll() 过滤时它会更新客户端。

使用findAll,过滤客户端

//route.js
model() {
return this.get('store').findAll('article');
}

//controller.js
articleSorted: computed.filterBy('model', 'isPublished', true),

和查询过滤服务器端

//route.js
model() {
return this.get('store').query('article', { q: 'isPublished' }),
}

事实是 findAll 正在重新加载而 query 没有。

我找到了这个但不明白 https://github.com/emberjs/ember.js/issues/15256

最佳答案

感谢提问。我会尽力回答这个问题,但似乎应该在 Ember 指南中添加更多文档来解释这种情况🤔

本质上,this.store.findAll()this.store.query() 做了两件截然不同的事情。 findAll() 旨在表示所有 实体(在您的案例中为文章),因此当商店找到更多文章时,结果将自动更新是有意义的它应该关心。它这样做是因为它不返回文章数组,它返回一个将自动更新的 DS.RecordArray

另一方面,

query() 旨在每次询问后端它期望的结果是什么,并且您通常将一些参数传递给 query() 后端用于查找或过滤结果的调用。前端不可能确切地知道后端如何解释这些查询参数,因此它不可能在添加满足相同查询的新文章时“自动更新”。

这有意义吗?你想让我说得更详细些吗?

关于ember.js - Ember store.findAll 正在重新加载 View 而 store.query 不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56791227/

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