加载路径时出错:使用EmberJS和Firebase(emberFire)时未定义

时间:2014-04-03 16:41:19

标签: ember.js ember-data firebase emberfire

我使用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时,它正常工作。但我真的想了解这个问题。

1 个答案:

答案 0 :(得分:0)

问题在于emberFire没有处理空的/不存在的集合。现在已经在emberFire仓库中修复了这个问题。

Github问题:https://github.com/firebase/emberFire/issues/39