在我的应用程序中,我强制App.Nodes.find()
提前(in ApplicationRoute.setupController
),因为我需要访问所有路由中的节点。要获得一个节点,我有这个应用程序方法:
var App = Ember.Application.createWithMixins({
...
getNode: function (nodeId) {
var nodes = this.Node.find();
var node = nodes.findProperty('id', nodeId);
return node;
},
...
});
但这每次都会触发一个请求。为了避免这种情况,我一直在保留rawNodes
缓存:
cacheNodes : function () {
this.set('rawNodes', this.Node.find());
},
但我不喜欢保留一个单独的缓存,而不是 ember 在商店中的缓存,因为这迫使我手动保持同步。
我想重复使用商店中的数据而不是请求新数据。如何访问nodes
商店?