0

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 で見つけたように試してみましたが、解決策からさらに離れてしまったようです。

他のほとんどの実装では、そのようなメソッドfindfindAll.

編集(解決策) 何度も行ったり来たりした後、なんとか機能させることができました。

どの手順で修正されたのか正確にはわかりませんが、(ローカルではなく) 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()
});
4

1 に答える 1

0

あなたが持っていたエラーは、おそらくオブジェクトの「s」複数形を追加したことが原因です。

つまり、使用する場合

App.Planets = DS.Model.extend({
})

そのエラーが発生します。

于 2013-10-18T05:04:35.023 に答える