2

使用基本适配器

App.Store = DS.Store.extend({
    revision: 12,
    adapter: 'DS.BasicAdapter'
});

我有:

'未捕获的适配器为空或未实现findAll方法'。

并且确实没有findAll方法basicAdapter(我确实确保适配器不为空)。我正在使用所有最新版本的 ember 和 ember 数据(从 ember 的 master 构建,从 emberjs 的 master 和 basic-adapter 分支构建)。

这还没有实现还是我错过了什么?由于我是从 ember 开始的,所以我不太有信心提交拉取请求,抱歉。

4

1 回答 1

2

你需要sync对象。例如:

App.Post = DS.Model.extend({
        author: DS.attr('string'),
        read: DS.attr('boolen')
    });

    App.Post.sync = {
        query: function (id, process) {
            console.log('find query for Post', arguments);

            $.getJSON('/path/to/API/').then(function (posts) {
                process(posts.map(function (post) {
                    return {
                        author: post.author,
                        read: post.is_read
                    };
                })).load();

                console.log('got posts', posts);
            });
        }
    };

然后将模型与路由关联:

    App.PostRoute = Ember.Route.extend({
    model: function () {
        console.log('Post route');

        return App.Post.find({});
    }
});

在您的应用程序中访问post路线后,您应该会很好。{}find()很重要。

于 2013-04-01T05:49:40.153 回答