【发布时间】:2015-11-17 17:31:21
【问题描述】:
我有一个 baseController 和一个 childController
每当我向 baseController 添加模块时,应用程序都会失败并出现错误:
Argument 'childController' is not a function, got undefined
编辑:添加了一个 plnkr http://plnkr.co/edit/mi9Ytv0HaqE47ENod4Gn
所以这行得通:
angular
.module('app')
.controller('BaseController', baseController);
angular
.module('app', ['ui.grid', 'ui.grid.pagination'])
.controller('ChildController', childController)
childController.$inject = ['$controller'];
function childController($controller) {
var self = this;
var baseController = $controller('BaseController', {
$scope: self
});
但是下面这个不工作:(注意在baseController模块部分添加'ui.bootstrap'......)
angular
.module('app', ['ui.bootstrap'])
.controller('BaseController', baseController);
angular
.module('app', ['ui.grid', 'ui.grid.pagination'])
.controller('ChildController', childController)
childController.$inject = ['$controller'];
function childController($controller) {
var self = this;
var baseController = $controller('BaseController', {
$scope: self
});
【问题讨论】:
-
我很惊讶第一个示例可以正常工作。你确定吗?
-
嗯,首先要注意的是您实际上覆盖了
app模块。参见documentation,“创建与检索”部分 -
是的,我确信上面的第一个条目有效 = 这是一个 plunker plnkr.co/edit/mi9Ytv0HaqE47ENod4Gn
-
我认为 Ilya Luzyanin 在某种程度上是正确的......但我不明白在这种情况下如何获得我正在寻找的继承......
标签: angularjs model-view-controller