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 相关的建议吗?

编辑:
似乎 ember-data 不是我想要的,ember-model 似乎更适合我的用例。

谢谢!

4

2 回答 2

2

首先:为什么要“手动”加载和推送您的服务器数据?

使用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 回答