我使用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,即使我可能只需要一个。
我确信有一个如何处理这个问题的最佳做法,但是,尽管我做了最好的研究工作,但我还是找不到它。
总结我的问题:
谢谢!
答案 0 :(得分:0)
我发现了问题:在我的FIXTURES中,我将ID指定为整数而不是字符串。不知道为什么会有所作为,但一旦我改变了它,它就起作用了。