0

テンプレートをフィードしようとしています:

<script type="text/x-handlebars" data-template-name="wineries">
{{#each}}
<p>{{name}}</p>
{{/each}}
</script>

そのルートで:(コメントを探してください)

Map.WineriesRoute = Ember.Route.extend({
    model: function() {
        var store = this.get('store');

        return Ember.$.getJSON('/api/wineries').then(function(response) {
            if (response.success) {
                response.data.forEach(function(winery) {
                    store.push('winery', winery);
                });
            }
            // what to do here?
            return store.findAll('winery');
        });
    }
});

そしてそのモデル:

Map.Winery = DS.Model.extend({
    name:          DS.attr('string'),
    address:       DS.attr('string'),
    address_2:     DS.attr('string'),
    city:          DS.attr('string'),
    stateprovince: DS.attr('string'),
    country:       DS.attr('string'),
    latitude:      DS.attr('float'),
    longitude:     DS.attr('float'),

    full_address: function () {
        return this.get('address') + ' ' + this.get('city') + ' ' + this.get('stateprovince') + ' ' + this.get('country');
    }.observes('address', 'city', 'stateprovince', 'country')
});

私はEmber.jsを使い始めて、たくさんのドキュメントを読んでいますが、ドキュメントページを読んだ後でもストアを処理する方法がわからないので行き詰まっています.

1) ストアにオブジェクトを適切に供給するにはどうすればよいですか? 2) 店に給餌した後、オブジェクトを適切に返却するにはどうすればよいですか? 3) 他にエンバー関連の提案はありますか?

編集:
ember-data は私が探しているものではないようです.ember-model は私のユースケースにより適しているようです.

ありがとう!

4

2 に答える 2

2

まず第一に: サーバー データを「手動で」ロードしてプッシュするのはなぜですか?

you を使用DS.RESTAdapter or DS.ActiveModelAdapterすると、ember-data は REST API からアイテムを自動的にロードできます。詳しくはこちらをご覧ください。

次に、次のようにルート クラスを単純化できます。

Map.WineriesRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('winery');
    }
});
于 2013-10-16T08:20:56.460 に答える
1

TomShreds - Mutual Exception が示唆するように RESTAdapter を使用する場合 (私もアドバイスします)、モデルを複数形にする方法を手動で設定できます。

DS.RESTAdapter.configure("plurals", { winery: "wineries" });

ここでの元の回答: Ember Data でモデルの複数形を指定する場所はどこですか?

于 2013-10-16T17:45:27.180 に答える