如何在使用Typescript时声明我的appController

时间:2014-07-29 08:27:34

标签: angularjs typescript

我刚刚改为使用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

我是否正确声明了控制器?任何人都可以帮忙建议我如何调试这个问题吗?

2 个答案:

答案 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);