在我的应用程序中,我的路线图中有共同的父/子关系。
App.Router.map(function () {
this.resource('strats', {path: "/"}, function() {
this.route('strat', {path: "/strat/:strat_id"});
});
});
我的理解是,Ember第一次进入父路由时,会调用find()获取所有模型,一般会触发对服务器的Ajax调用。然后当 Ember 随后转换到子路由时,它首先调用 find(),然后调用 find(id)。如果我正在使用具有身份映射实现的数据层(例如 Ember-Data 或 Ember-Model),这些对 find() 和 find(id) 的后续调用应该会导致从本地内存中获取数据,而 Ember只要应用程序正在运行,就不必因为调用这些函数而向服务器发起另一个 Ajax 调用。如果这种理解是正确的,那么我应该不必在服务器端实现 find(id) 。
我在我的应用程序中使用 Ember-Model。当我在路由之间导航时,我看到服务器端对单个模型的请求偶尔会通过,这意味着对 find(id) 的调用有时会触发对服务器的 Ajax 调用,这是出乎意料的。我上面描述的逻辑中的缺陷在哪里?