Ember App Kit:无法识别无路由控制器?

时间:2014-03-27 14:48:07

标签: ember.js ember-app-kit

正如我在几个问题中提到的那样,我正在迁移一个已经存在且正在运行的Ember项目以使用Ember App Kit,我遇到了几个问题......这是另一个问题"以前没有问题:)

我已将NotificationCollectionController置于app/controllers/notification/collection.js下。

档案' app / controllers / notification / collection.js':

export default Ember.ArrayController.extend({
  addNotification: function (options) {
    // some code
  },
  notifyOnDOMRemove: function (notification) {
    this.removeObject(notification);
  }
});

由于这是通过指定出口呈现的通知的控制器,因此我没有为其声明路线。

在我的ApplicationRoute中,我想在函数

中访问此控制器

档案' app / routes / application.js'

import BaseRoute from 'appkit/routes/base';

export default BaseRoute.extend({
  addGlobalNotificationCollection: function () {
    var controller = this.controllerFor('notificationCollection');
    // some more code...
  }
});

但是一旦应用程序启动并且这段代码被调用,我就会追踪到以下错误:

  

"断言失败:控制器名为' notificationCollection'可以   找不到。确保此路线存在且已存在   进入至少一次。如果您不访问控制器   与路由关联,确保控制器类是显式的   。定义"

这是什么意思,为什么会被抛出?我需要做些什么来让它再次运行

1 个答案:

答案 0 :(得分:2)

我没有意识到Naming ConventionsEmber App Kit Webpage部分已经提供了提示

它说,控制器的命名约定是,例如:stop-watch.js

  

如果它是一个路由控制器,我们可以声明这样的嵌套/子控制器:   app/controllers/test/index.js

所以我将NotifcationCollectionController放在controllers/notification-collection.js中,并将其称为Route#controllerFor('notification-collection'),一切都按预期工作:)