我正在使用 RESTful API 创建 Ember.js 应用程序,我遇到了这个错误:
Error while loading route: TypeError: Cannot set property 'store' of undefined
我无法弄清楚造成这种情况的原因。
window.App = Ember.Application.create();
App.VideosAdapter = DS.MyRESTAdapter;
App.Router.map(function () {
this.resource('videos', {
path: '/'
});
});
App.Video = DS.Model.extend({
title: DS.attr('number'),
videoId: DS.attr('string'),
date: DS.attr('string')
});
App.VideosAdapter = DS.RESTAdapter.extend({
namespace: 'data'
});
App.VideosRoute = Ember.Route.extend({
model: function() {
return this.store.find();
}
});
调试信息:
DEBUG: -------------------------------
DEBUG: ember.js:3880
DEBUG: Ember : 1.7.0-beta.1+canary.2eae2280 ember.js:3880
DEBUG: Ember Data : 1.0.0-beta.7+canary.20adb1d5 ember.js:3880
DEBUG: Handlebars : 1.3.0 ember.js:3880
DEBUG: jQuery : 1.10.2 ember.js:3880
DEBUG: -------------------------------
我试图像这样改变我的路线:
App.VideosRoute = Ember.Route.extend({
model: function() {
return App.Video.find();
}
});
但得到了一个错误:
Error while loading route: TypeError: Object function () { .. } has no method 'find'
这是我的JSON数据(http://localhost/data/videos/1
)(它可以很好地加载到Ember Inspector中):
{
"video": {
"id": 1,
"title": "Video title!",
"videoId": "AAZ23",
"date": "12/122013"
}
}
答案 0 :(得分:1)
你必须告诉商店你想要什么样的物品 - 试试这个:
App.VideosRoute = Ember.Route.extend({
model: function() {
return this.store.find('video');
}
});