提问者:小点点

Ember数据-未捕获的类型错误:无法读取未定义的属性“查找”


使用最新的(今天来自GitHub)Ember和Ember数据,此代码给我一个错误-未捕获的TypeError:无法读取enpe-data-latest. js上未定义的属性“查找”:3170

http://jsfiddle.net/Bf43W/9/

// only needed on JSFiddle; this is to trigger the route
history.pushState("", "", "/projects/1/tasks");

App = Ember.Application.create({});

App.store = DS.Store.extend({
    revision: 4,
    adapter: DS.RESTAdapter.create()
});

App.Project = DS.Model.extend({
    name: DS.attr('string')
});

App.ApplicationController = Ember.ObjectController.extend({
});

App.ApplicationView = Ember.View.extend({
    templateName: 'application'
});

App.TasksView = Ember.View.extend({
    templateName: 'tasks'
});

App.Router = Ember.Router.extend({
    root: Ember.Route.extend({
        tasks: Ember.Route.extend({
            route: '/projects/:project_id/tasks',
            connectOutlets: function(router) {
                router.get('applicationController').connectOutlet('Tasks');
            }
        })
    })
});

App.router = App.Router.create({
    location: 'history'
});

App.initialize(App.router);

更改:在路由中projects_id其他内容(例如1,因此它与URL匹配)可以解决此问题,但这当然不是很有用。

有人能解释一下这里发生了什么吗?谢谢!


共3个答案

匿名用户

我也遇到了同样的问题。我通过从以下位置获取最新下载而不是编译最新提交来解决它:

https://github.com/emberjs/data/downloads

这段代码是3个月前的,所以我们一直在使用修订版4,但它很稳定。

在我注意到他们在Ember-Data存储库中使用的Ember版本比您从Ember网站下载的版本更新后,我能够开始这项工作:

// Version: v1.0.pre-156-gddcc580
// Last commit: ddcc580 (2012-09-21 09:52:25 -0700)

vs

// Version: v1.0.pre
// Last commit: 7955b85 (2012-08-03 14:50:17 -0700)

编译最新版本的Ember-Data后,进入dist/模块以获取他们正在开发的Ember版本。

我还必须更改Store的初始化方式:

App.Store = DS.Store.extend({
  revision: 4,
  adapter: DS.RESTAdapter.create()
});

App.store = DS.Store.create({
  revision: 6,
  adapter: DS.RESTAdapter.create()
});

我还必须删除App.初始化()行,因为这个较新版本的Ember似乎正在实例化自己。

匿名用户

唯一的错误是你必须将App.store大写。你声明了一个类,所以命名约定需要App.Store,以便让应用程序初始化正常进行。

匿名用户

有同样的问题

在我的情况下只是替换

App.Store = DS.Store.extend({
...
})

App.store = DS.Store.create({
...
})

修复了它。所以我想Ember. js版本不是问题。无论如何,谢谢你知道如何解决我的问题。