所以,
我正在开发 Ember 应用程序并遇到一个令人困惑的问题。在索引路由应用程序执行 find() 并返回一个数组
数据集并链接到模板以显示有关每个模板的更多详细信息
数据集当请求通过 id 查找时,它们会被侧载。(即 find(1),其中 1 是 id。)
带有 id 的第一个请求工作正常,返回数据集对象及其侧载数据,但是后续请求似乎没有做任何事情。如果我在加载第一个数据集的详细信息后尝试导航到任何其他数据集,则服务器看不到任何请求。但是,如果我从特定数据集导航回索引,然后返回到任何数据集,它将再次发送请求(甚至两次,不确定这是否是相关问题)并正常工作。换句话说:
/# 有效
/#/1 也有效(或任何其他 id,只要它是第一个访问的)
/#/1 然后 /#/2 无效,不发送请求
/#/1 随后通过 /# 然后 /#/2确实有效,将数据维护在 /#/1 并获取 /#/2 的新数据。
如何让所有特定的数据集对象在访问它们时返回,而不在索引处出现 hacky 进站?任何建议将不胜感激,在此先感谢您!
编码:
-app.js
/****************************** * 应用 ******************************/ var App = Em.Application.create(); App.Router.map(function() { this.resource('application', {path:'/'}, function() { this.resource('dataset', {path: '/:dataset_id'}, function() { }); }); }); App.ApplicationRoute = Em.Route.extend({ 模型:函数(){ 返回 App.Dataset.find(); } }); App.DatasetRoute = Em.Route.extend({ 激活:函数(){ this.modelFor('dataset').reload(); } }); /****************************** * 楷模 ******************************/ App.Store = DS.Store.extend({ 适配器:DS.RESTAdapter.create({ url: 'http://***.***.***.***:5000', 命名空间:'api', 序列化器:DS.RESTSerializer.extend({ 主键:功能(类型){ 返回'_id'; } }) }) }); App.Dataset = DS.Model.extend({ 数据集:DS.attr('string'), 标题:DS.attr('string'), 积分:DS.hasMany('App.Point') }); App.Point = DS.Model.extend({ 数据集:DS.attr('string'), dataset_id: DS.attr('string'), 日期:DS.attr('日期'), 值:DS.attr('string') });