javascript - Ember 数据 "Cannot call method ' hasOwnProperty' of undefined"

标签 javascript ember.js ember-data

我有以下 Ember.js 模型:

Filters.Milestone = DS.Model.extend({
    id: DS.attr('string'),
    name: DS.attr('string')
});

在我的 app.js 中,我对模型进行了以下设置(在模型之前加载):

Filters.MilestoneSerializer = DS.RESTSerializer.extend();
Filters.MilestoneAdapter = DS.RESTAdapter.extend({
    namespace: "ember"
});

加载页面时,完成对里程碑列表的 AJAX 调用。返回以下 JSON:

{
    "milestones": [
        {
            "id": "1",
            "name": "Test Milestone #1"
        }
    ]
}

加载 JSON 时,返回以下错误:

TypeError: Cannot call method 'hasOwnProperty' of undefined
    at e (http://sandbox.local/ember/js/libs/ember-data.js:8:30934)
    at null.<anonymous> (http://sandbox.local/ember/js/libs/ember-data.js:8:31181)
    at ComputedPropertyPrototype.set (http://sandbox.local/ember/js/libs/ember-1.4.0.js:4903:18)
    at new Class (http://sandbox.local/ember/js/libs/ember-1.4.0.js:12652:18)
    at Function.Mixin.create.create (http://sandbox.local/ember/js/libs/ember-1.4.0.js:13104:12)
    at Ember.Object.extend.buildRecord (http://sandbox.local/ember/js/libs/ember-data.js:10:2880)
    at Ember.Object.extend.recordForId (http://sandbox.local/ember/js/libs/ember-data.js:9:31214)
    at Ember.Object.extend._load (http://sandbox.local/ember/js/libs/ember-data.js:10:2048)
    at Ember.Object.extend.push (http://sandbox.local/ember/js/libs/ember-data.js:10:2450)
    at null.<anonymous> (http://sandbox.local/ember/js/libs/ember-data.js:10:2701)

我做错了什么?我尝试遵循与 https://github.com/emberjs/data/blob/master/packages/ember-data/tests/integration/adapter/rest_adapter_test.js#L465 相同的结构.如果我重命名里程碑 key ,它会说找不到新 key 的模型,所以一定是正确的:-)

提前致谢。

编辑

我使用的路线如下:

Filters.FiltersRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('milestone')
    }
});

如果未调用 this.store.find('milestone'),则不会发生错误。另外,如果我使用 FixtureAdapter 而不是 RESTAdapter,错误仍然发生。所以看起来这可能与模型有关,而不是数据源。

最佳答案

问题是由模型中的 id 属性引起的。显然这不应该是模型的一部分。

关于javascript - Ember 数据 "Cannot call method ' hasOwnProperty' of undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21990844/

相关文章:

javascript - IE 10 中的 Telerik DatePicker 不工作

javascript - Ember : Access ember data 'store' object from utility class

ember.js - 构建 Ember Power-Select 组件

javascript - ember js 中的动态段

ember.js - 在 emberjs 中使用更详细的数据动态填充模型

ember.js - ember-data 中 Rails 风格的多态模型

javascript - 检索 MagicSelect MultiValue 的选定值

php - jQuery 调用 PHP 文件从 mysql 数据库中获取数据?

javascript - angularjs:在中间添加行时检测 ng-repeat 何时完成

ember.js - Ember : Accessing a nested object inside an #each loop