【问题标题】:Getting Started with Ember-Model: Ember.Adapter subclasses must implement findAllEmber-Model 入门:Ember.Adapter 子类必须实现 findAll
【发布时间】:2013-07-27 23:33:09
【问题描述】:

我尝试跟随 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() 的调用失败了。

【问题讨论】:

    标签: ember.js ember-model


    【解决方案1】:

    您似乎将Ember ModelEmber Data 混为一谈(它们都填补了相同的模型空白)。 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()
    });
    

    【讨论】:

    • 我知道这两个并打算使用 Ember 模型。我已经能够让它与 Ember Data 一起使用,但基于 Ember 博客中的这篇文章:emberjs.com/blog/2013/05/03/ember-data-progress-update.html 我决定尝试“开始使用 Ember 模型”。你能指出你认为我在哪里误导或混淆了两者吗?然后我可以更新 OP 并让其他人更清楚。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多