我使用EmberJS重新创建了TodoMVC,在完成后,我尝试将ApplicationAdapter更改为FirebaseAdapter。但随后应用程序停止工作,我收到此错误:
Error while loading route: undefined
以下是我使用的版本
Ember : 1.5.0
Ember Data : 1.0.0-beta.7+canary.b45e23ba
Handlebars : 1.3.0
jQuery : 2.1.0
您可以在github查看代码 但这里有一些文件内容。
使用此代码,它可以正常工作
Todos.ApplicationAdapter = DS.FixtureAdapter.extend();
但是当我将其更改为此时,它会停止工作并收到错误:
Todos.ApplicationAdapter = DS.FirebaseAdapter.extend({
firebase: new Firebase('https://glaring-fire-8506.firebaseio.com')
});
我有TodosController和TodoController,这是我的路由器文件
Todos.Router.map(function () {
this.resource('todos', { path: '/' }, function () {
this.route('active');
this.route('completed');
});
});
Todos.TodosRoute = Ember.Route.extend({
model: function () {
return this.store.find('todo');
}
});
Todos.TodosIndexRoute = Ember.Route.extend({
model: function () {
return this.modelFor('todos');
},
renderTemplate: function (controller) {
this.render('todos/index', {
controller: controller
});
}
});
Todos.TodosActiveRoute = Todos.TodosIndexRoute.extend({
model: function () {
return this.store.filter('todo', function (todo) {
return !todo.get('isCompleted');
});
}
});
Todos.TodosCompletedRoute = Todos.TodosIndexRoute.extend({
model: function () {
return this.store.filter('todo', function (todo) {
return todo.get('isCompleted');
});
}
});
编辑:当我将待办事项JSON对象添加到Firebase时,它正常工作。但我真的想了解这个问题。
答案 0 :(得分:0)
问题在于emberFire没有处理空的/不存在的集合。现在已经在emberFire仓库中修复了这个问题。