1

我正在使用 Ember RC2 和 Ember-Data 12 有以下关系(简化):

App.GlobalData = DS.Model.extend({
    lat: DS.attr('number'),
    lon: DS.attr('number'),
});

App.System = DS.Model.extend({
    title: DS.attr('string'),

    data: DS.belongsTo('App.GlobalData'),   
});

在我的(系统)视图中,我现在想像这样访问孩子的数据:{{ data.lat }}

似乎 Ember(目前我正在使用 FixtureAdapter,但我也希望将来可以与 RESTadapter 一起使用)不会自动加载子元素数据。在{{ data.id }}返回 id 的值(在 App.GlobalData.FIXTURES 中指定)时,{{ data.lat }}返回undefined.

我通过创建一个数组控制器在某种程度上解决了这个问题:

App.GlobalDatasController = Ember.ArrayController.extend({});
App.globalDatasController = App.GlobalDatasController.create({});

并在我的 ApplicationRoute 中预加载所有 GlobalData

App.ApplicationRoute = Ember.Route.extend({
  setupController: function() {
      App.globalDatasController.set('content', App.GlobalData.find());
  }
});

但是,这似乎不是一个好的解决方案,因为它需要我加载所有GlobalData,即使我可能只需要一个。

我确信有一个关于如何处理这个问题的最佳实践,但是,尽管我尽了最大的研究努力,但我还是没能找到它。

总结一下我的问题:

  1. 我如何以及在哪里告诉 ember 与父级一起加载子级数据(无需旁加载)?
  2. 如果侧载是唯一的选择,我将如何在 FixtureAdapter 中实现它?

谢谢!

4

1 回答 1

0

我发现了问题:在我的 FIXTURES 中,我将 ID 指定为整数而不是字符串。不知道为什么这会有所作为,但是一旦我改变了它,它就起作用了。

于 2013-04-17T15:17:29.687 回答