我正在使用 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,即使我可能只需要一个。
我确信有一个关于如何处理这个问题的最佳实践,但是,尽管我尽了最大的研究努力,但我还是没能找到它。
总结一下我的问题:
- 我如何以及在哪里告诉 ember 与父级一起加载子级数据(无需旁加载)?
- 如果侧载是唯一的选择,我将如何在 FixtureAdapter 中实现它?
谢谢!