javascript - 通过获取 JSON 对象并将其推送到存储中来提供 Ember.js 模板

标签 javascript ember.js client-side

我正在尝试提供模板:

<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 似乎更适合我的用例。

谢谢!

最佳答案

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

使用 DS.RESTAdapter 或 DS.ActiveModelAdapter 您可以让 ember-data 从 REST API 自动加载您的项目。请参阅here了解更多详情。

然后您可以像这样简化您的路线类:

Map.WineriesRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('winery');
    }
});

关于javascript - 通过获取 JSON 对象并将其推送到存储中来提供 Ember.js 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19395173/

相关文章:

javascript - meteorjs用户权限未与服务器同步

caching - 如何设置 Typo3 以便启用客户端缓存?

ember.js - 如何用 ember.js 路由器表示 "graph"(不是树)结构?

javascript - 从 Action 设置模型并在 ember js 中重新加载模板

javascript - 从 child 更改 parent 的状态并在另一个 child react native 中使用它

javascript - 更改 $scope 时,带有 ng-options 的 EDIT<select> 不会刷新所选内容

ember.js - 使用新的Ember RouterV2,如何立即从索引状态重定向到另一个状态?

html - 在 HTML5 时代使用客户端 XSLT 转换

javascript - Nodejs mongodb 动态集合名称

javascript - 使用 JavaScript 计算工作日并考虑假期