Ember.js:如何显示记录和链接的索引而不附带加载
我正在尝试设置类似以下内容的列表页面:Ember.js:如何显示记录和链接的索引而不附带加载,ember.js,ember-data,sideloading,Ember.js,Ember Data,Sideloading,我正在尝试设置类似以下内容的列表页面: {{#each task in controller}} {{#linkTo 'project' task.project}} {{task.project.name}} {{/linkTo}} {{/each}} {{#each task in controller}} {{#linkTo 'project' task.project_params}} {{task.project_name}} {{/linkTo}}
{{#each task in controller}}
{{#linkTo 'project' task.project}}
{{task.project.name}}
{{/linkTo}}
{{/each}}
{{#each task in controller}}
{{#linkTo 'project' task.project_params}}
{{task.project_name}}
{{/linkTo}}
{{/each}}
问题是,我不想预先加载与每个任务相关的每个项目,因为我不太可能需要所有的项目,而且我最终会在项目的依赖关系树中陷入混乱。相反,我正在尝试这样做:
{{#each task in controller}}
{{#linkTo 'project' task.project}}
{{task.project.name}}
{{/linkTo}}
{{/each}}
{{#each task in controller}}
{{#linkTo 'project' task.project_params}}
{{task.project_name}}
{{/linkTo}}
{{/each}}
然后是任务模型:
App.Task = DS.Model.extend
project_id: DS.attr('number')
project_name: DS.attr('string')
project_params: (->
{ id: @get('project_id') }
).property('project_id')
这个解决方案实际上可以在
任务/索引
页面上正常工作。我看到了项目名称,链接指向了项目。但是在项目页面上,项目似乎并不认为它与任何任务相关。它点击服务器,服务器响应项目和相关任务。但是,它似乎没有用新数据刷新项目。我做错了什么?您是否尝试过使用异步关系
比如:
App.Task = DS.Model.extend
project: DS.belongsTo('project', async: true)
projectName: DS.attr('string')
不确定是否可以仅使用JSON中的项目id使其工作,但您应该能够使用链接
,例如{task:{id:1,projectName:'foo',links:{project:'project/2'}
(此项目嵌套在任务下,可能不需要,但您可以使用完整的URL或其他内容)
模板中的链接类似于{{{#link to'projects.show'project}}{{projectName}{{/link to}
下面是一个示例。您是否尝试过使用异步关系 比如:
App.Task = DS.Model.extend
project: DS.belongsTo('project', async: true)
projectName: DS.attr('string')
不确定是否可以仅使用JSON中的项目id使其工作,但您应该能够使用链接
,例如{task:{id:1,projectName:'foo',links:{project:'project/2'}
(此项目嵌套在任务下,可能不需要,但您可以使用完整的URL或其他内容)
模板中的链接类似于{{{#link to'projects.show'project}}{{projectName}{{/link to}
下面是一个例子。看起来你可以做:
{{#each task in controller}}
{{#linkTo 'project' task.project_id}}
{{task.project_name}}
{{/linkTo}}
{{/each}}
看起来你可以做到:
{{#each task in controller}}
{{#linkTo 'project' task.project_id}}
{{task.project_name}}
{{/linkTo}}
{{/each}}
嗯,这似乎不管用。它仍然会加载任务索引页上的所有项目。这一点很好。这没有任何意义。我想知道发生了什么。嗯,这似乎不管用。它仍然会加载任务索引页上的所有项目。这一点很好。这没有任何意义。我想知道发生了什么。当然,但是如果你想真正定义任务和项目之间的关系,你应该能够使用belongsTo/hasMany和
#链接到'project',task.project
。当然,如果你想真正定义任务和项目之间的关系,你应该能够使用belongsTo/hasMany和#链接到'project',task.project
。