Laravelで作成したEmber.js
アプリケーションと一緒にアプリケーションをセットアップしようとしています。RESTful API
ストアからデータを取得しようとして問題が発生しました。実装によっては、さまざまなエラーが発生しますが、実装が機能することはありません。
ガイドには 1 つのember.js
例があり、他の場所には他の例があり、私が見つけたほとんどの情報は古くなっています。
これが私の現在のコードです:
App = Ember.Application.create();
App.Router.map(function() {
this.resource("world", function() {
this.resource("planets");
});
});
App.PlanetsRoute = Ember.Route.extend({
model: function() {
return this.store.find('planet');
}
});
App.Planet = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
subjectId: DS.attr('number')
});
そして、惑星のリンクをクリックしようとすると、エラーが発生し、次のエラーが表示されます。
Error while loading route: TypeError {} ember-1.0.0.js:394
Uncaught TypeError: Cannot set property 'store' of undefined emberdata.js:15
/planets に対するリクエストはまったく送信されません。$.getJSON で動作させましたが、デフォルトの ember-data RESTAdapter を実装しようとしました。
参考までに、これらは私が試した実装の一部です。
var store = this.get('store'); // or just this.get('store').find('planet')
return store.find('planet', 1) // (or findAl()) of store.findAll('planet');
App.store = DS.Store.create();
私もDS.Store.all('planet')
ember.js api で見つけたように試してみましたが、解決策からさらに離れてしまったようです。
他のほとんどの実装では、そのようなメソッドfind
やfindAll
.
編集(解決策) 何度も行ったり来たりした後、なんとか機能させることができました。
どの手順で修正されたのか正確にはわかりませんが、(ローカルではなく) Web から入手できる最新バージョンを含めたところ、ソースコードは次のようになりました。
window.App = Ember.Application.create();
App.Router.map(function() {
this.resource("world", function() {
this.resource("planets");
});
});
App.PlanetsRoute = Ember.Route.extend({
model: function() {
return this.store.findAll('planet');
}
});
App.Planet = DS.Model.extend({
name: DS.attr(),
subjectId: DS.attr()
});