Ember-Model入门:Ember.Adapter子类必须实现findAll

时间:2013-07-27 21:33:47

标签: ember.js ember-model

我试图跟随Ember演员视频: http://www.embercasts.com/episodes/getting-started-with-ember-model

我最初尝试使用最新的把手rc4和ember rc6但是收到了这个错误:Ember.Adapter子类必须实现findAll

它没有多大意义,因为我可以看到在fixture适配器源代码中定义的findAll方法实现。我尝试调试app.js以检查App.Person.adapter,但是对于mixins的所有获取和包装器,它没有太大帮助。

然后我直接从视频中下载了源代码并在浏览器中打开了index.html,但仍然有相同的错误。这真的很奇怪,因为代码显然适用于视频。

无论如何,我试图在这里制作一个jsFiddle: http://jsfiddle.net/YCG9b/1/ 看看是否有人可以指出我希望在某处发生的微不足道的错误。 jsFiddle不喜欢从github加载ember-model.js所以我将整个内容粘贴到JS部分。

这里发生的事情很少,似乎这可能是库版本之间的不兼容,某些环境问题,或某些地方的愚蠢语法错误。 我的理解是,这一行App.Person.adpater = Ember.FixtureAdapter.create();实际上并没有在人员模型上放置一个带有findAll方法的适配器,因此App.Person.find()的后续调用失败了。

2 个答案:

答案 0 :(得分:1)

相当尴尬,但我拼错了适配器...

我甚至引用了有错误的代码行。 :(

App.Person.adapter = Ember.FixtureAdapter.create();

无论如何,如果其他人在将来发现这一点,这里是更新的小提琴: http://jsfiddle.net/YCG9b/3/

答案 1 :(得分:0)

看起来你正在混淆Ember ModelEmber Data(它们都填充相同的模型空白)。 Ember数据由ember核心团队提供,ember模型由Erik Bryn提供,他也定期向Ember提交。他们都非常好。

Ember Data需要商店,您使用DS.attr和DS.Model.extend等...

BTW,cdnjs有一个余烬数据,如果你想把它链接到你的jsfiddle。

此处已修复:http://jsfiddle.net/PX5DV/

App.Store = DS.Store.extend({
  revision: 13,
  adapter: DS.FixtureAdapter.create()
});

App.Person = DS.Model.extend({
  id: DS.attr(),
  name: DS.attr()
});