我有几个视图,渲染结果取决于相同的集合,然后是其他模型或集合:
Examaples:
View1 -> model1, commonCollection
View2 -> collection2, commonCollection
View3 -> model3, commonCollection
现在,为了解决这个问题,我为每个视图制作了commonCollection.fetch ......在渲染页面之前,我等待每个模型/集合为每个视图做好准备 正如this answer中所述 但由于commonCollection的结果是相同的,我想缓存结果,以便将其用于其他视图。
如何在不使用全局变量的情况下缓存commonCollection的结果?我正在使用RequireJs
答案 0 :(得分:2)
你不能只是覆盖公共集合中的fetch
来进行缓存吗?
Backbone.Collection.extend({
...
fetch: function(options) {
if (alreadyUpdated) {
// do nothing
} else {
return Backbone.Collection.prototype.fetch.apply(this, arguments);
}
}
...
});
这是一个更完整的例子的小提琴: http://jsfiddle.net/4A8Wu/2/