我刚刚改为使用Typescript,一旦启动我的应用程序,我就收到错误。
这是我定义AppController的方式:
app.controller('appController', AppController);
class AppController {
static $inject = [
'$scope',
'$state',
'authService',
'stateService',
'userService'
]
constructor(
public $scope: IAppControllerScope,
) {
$scope.app = this;
}
}
我检查过并且文件已加载。
但是我收到一条消息说:
Argument 'appController' is not a function, got undefined
我是否正确声明了控制器?任何人都可以帮忙建议我如何调试这个问题吗?
答案 0 :(得分:0)
这应该有效:
interface IAppControllerScope extends ng.IScope
{
app : AppController;
}
class AppController {
static $inject = [
'$scope',
'$state',
'authService',
'stateService',
'userService'
];
constructor(public $scope: IAppControllerScope
, public $state: any
, public authService: any
, public stateService: any
, public userService: any
) {
$scope.app = this;
}
}
var app = angular.module('myModule');
app.controller('appController', AppController);
答案 1 :(得分:0)
Alaways首先声明类/模块然后用Angular连接它。所以这将有效:
class AppController {
static $inject = [
'$scope',
'$state',
'authService',
'stateService',
'userService'
]
constructor(
public $scope: IAppControllerScope,
) {
$scope.app = this;
}
}
app.controller('appController', AppController);