phi*_*dah 2 javascript ember.js ember-data
我有以下Ember.js模型:
Filters.Milestone = DS.Model.extend({
id: DS.attr('string'),
name: DS.attr('string')
});
Run Code Online (Sandbox Code Playgroud)
在我的app.js中,我对模型进行了以下设置(在模型之前加载):
Filters.MilestoneSerializer = DS.RESTSerializer.extend();
Filters.MilestoneAdapter = DS.RESTAdapter.extend({
namespace: "ember"
});
Run Code Online (Sandbox Code Playgroud)
加载页面时,将完成对里程碑列表的AJAX调用.返回以下JSON:
{
"milestones": [
{
"id": "1",
"name": "Test Milestone #1"
}
]
}
Run Code Online (Sandbox Code Playgroud)
加载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)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我尝试使用与https://github.com/emberjs/data/blob/master/packages/ember-data/tests/integration/adapter/rest_adapter_test.js#L465相同的结构.如果我重命名里程碑键,它说没有找到新键的模型,所以必须是正确的:-)
提前致谢.
我使用的路线如下:
Filters.FiltersRoute = Ember.Route.extend({
model: function() {
return this.store.find('milestone')
}
});
Run Code Online (Sandbox Code Playgroud)
如果this.store.find('milestone')未调用则不会发生错误.此外,如果我使用FixtureAdapter而不是RESTAdapter,错误仍然会发生.所以看起来这可能与模型有关,而不是数据源.
| 归档时间: |
|
| 查看次数: |
2637 次 |
| 最近记录: |