gpt4 book ai didi

javascript - 微调Ember路线多个模型的刷新

转载 作者:太空宇宙 更新时间:2023-11-04 16:04:58 25 4
gpt4 key购买 nike

有一种众所周知的方法可以支持在 Ember 路由中加载多个模型 promise ,即使用 Ember.RSVP.hash:

// app/routes/posts.js

export default Ember.Route.extend({

model(params) {
return Ember.RSVP.hash({
posts: this.store.findAll('post', params),
tags: this.store.findAll('tag', params),
});
},

});

现在我有一个 page 参数,能够批量加载帖子,而不是一次性加载并显示它们。但页面更改不会改变标签。但是,当页面参数更改时,整个路由模型会再次触发重新加载,导致应用程序重新获取新页面的帖子以及相同的标签。

有没有办法对此进行微调,以便在某些参数更改时不加载标签?

最佳答案

有多种方法可以重构代码。就像将标签移出模型一样。或者以不同的方式进行分页(不刷新模型)。我喜欢编写一个自定义 getAll 实用程序。

var cache = {}; // model_name => Promise<[Record]>

function getAll(store, model) {
if(!store.modelFor(model).cacheable) {
return store.findAll(model);
}

if(!cache[model]) {
cache[model] = store.findAll(model);
}

return cache[model];
}

现在在你的模型中

import { getAll } from 'utils/store';
...
tags: getAll('tag'),

关于javascript - 微调Ember路线多个模型的刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948000/

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