Ember.js:无法设置undefined的属性'store'

时间:2014-04-03 23:50:52

标签: javascript ember.js ember-data

我正在使用 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"
    }
}

1 个答案:

答案 0 :(得分:1)

你必须告诉商店你想要什么样的物品 - 试试这个:

App.VideosRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('video');
    }
});