正如我在几个问题中提到的那样,我正在迁移一个已经存在且正在运行的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'可以 找不到。确保此路线存在且已存在 进入至少一次。如果您不访问控制器 与路由关联,确保控制器类是显式的 。定义"
这是什么意思,为什么会被抛出?我需要做些什么来让它再次运行?
答案 0 :(得分:2)
我没有意识到Naming Conventions的Ember App Kit Webpage部分已经提供了提示:
它说,控制器的命名约定是,例如:stop-watch.js
如果它是一个路由控制器,我们可以声明这样的嵌套/子控制器:
app/controllers/test/index.js
所以我将NotifcationCollectionController
放在controllers/notification-collection.js
中,并将其称为Route#controllerFor('notification-collection')
,一切都按预期工作:)