そのため、Ember Data を使用して API エンドポイントからのデータを使用して、Ember アプリケーションでルートを動的に構築しようとしています/categories
。これを行うためにdidLoad
、コントローラーによって呼び出され、そのコントローラーのプロパティに設定されるメソッドをモデルに追加しています。ルートをルーターにマップすると、すべて正常に機能します。本当の問題は、findQuery によって取得されたサーバーからのデータによって設定されたコンテンツ プロパティを使用してコントローラーをセットアップしようとしたときに始まります。
これはエラーです:
TypeError {} "Object /categories/548/feeds has no method 'eachRelationship'"
これはコードです:
window.categoryRoutes = [];
App.Categories = DS.Model.extend({
CATEGORYAFFINITY: DS.attr('boolean'),
CATEGORYID: DS.attr('number'),
CATEGORYNAME: DS.attr('string'),
CATEGORYLINK: function () {
var safeUrl = urlsafe(this.get('CATEGORYNAME'));
categoryRoutes.push(safeUrl);
return safeUrl;
}.property('CATEGORYNAME'),
didLoad: function () {
var categoryLink = this.get('CATEGORYLINK');
var categoryId = this.get('CATEGORYID');
App.Router.map(function () {
this.resource(categoryLink, function () {
// some routes
});
});
App[Ember.String.classify(categoryLink) + 'Route'] = Ember.Route.extend({
setupController: function(controller, model) {
// source of error
this.controllerFor(categoryLink).set(
'content',
this.store.findQuery('/categories/' + categoryId + '/feeds', {
appid: 'abc123def456',
lat: 39.75,
long: -105
})
);
}
});
}
});
どんな「半分」でも大歓迎です!
また、これが完全に間違っていて、これを行う Ember のような方法がある場合は、知りたいです。