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