2

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

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

这没有多大意义,因为我可以看到在夹具适配器源代码中定义的 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();实际上并没有在 person 模型上放置一个带有 findAll 方法的适配器,因此随后的调用App.Person.find()失败了。

4

2 回答 2

1

很尴尬,但是我拼错了适配器...

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

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

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

于 2013-08-03T20:07:02.613 回答
0

看起来您将Ember 模型Ember 数据混合在一起(它们都填充了相同的模型空白)。Ember 数据由 ember 核心团队提供,ember 模型由 Erik Bryn 提供,他也定期提交给 Ember。他们都非常好。

Ember Data 需要存储,而您使用 DS.attr 和 DS.Model.extend 等...

顺便说一句,如果你想将它链接到你的 jsfiddle,cdnjs 有一个 ember 数据。

这里是固定的: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()
});
于 2013-07-28T18:10:28.900 回答