Ember.js 中的“controller.controllers”是什么?
看起来
this.getPath("controller.controllers")
在视图中返回 App.router。这非常有用,但我想了解我在做什么:-)
Ember.js 中的“controller.controllers”是什么?
看起来
this.getPath("controller.controllers")
在视图中返回 App.router。这非常有用,但我想了解我在做什么:-)
当调用initialize
你的Ember.Application
时,所有控制器都被实例化并设置在路由器上。控制器反过来也会注入一些属性,如在此处实现的那样。如您所见,该controllers
属性是对路由器的引用。
Ember.Application.registerInjection({
name: 'controllers',
injection: function(app, router, property) {
if (!/^[A-Z].*Controller$/.test(property)) { return; }
var name = property.charAt(0).toLowerCase() + property.substr(1),
controller = app[property].create();
router.set(name, controller);
controller.setProperties({
target: router,
controllers: router,
namespace: app
});
}
});