Typescript 用户界面路由器&x27;s解析和键入脚本

Typescript 用户界面路由器&x27;s解析和键入脚本,typescript,angular-ui-router,Typescript,Angular Ui Router,我很好奇如何使用UI路由器的resolve和TypeScript .state("signin.notActivated", <ng.ui.IState> { controller: "SigninCtrl", controllerAs: "signin", url: "/notActivated", resolve: {

我很好奇如何使用UI路由器的resolve和TypeScript

.state("signin.notActivated", <ng.ui.IState> {
                    controller: "SigninCtrl",
                    controllerAs: "signin",
                    url: "/notActivated",
                    resolve: {
                        inProgress: function() {
                            return { formData : null }
                        }
                    }
                })
我收到一个未知的提供程序错误,因为TypeScript正在尝试将其注册为服务


可以这样做吗?

试着像这样注射它:

static $inject = ['$state', 'inProgress'];
constructor(public $state : angular.ui.IState, private inProgress) {
    this.init();                
}

确保您仅通过路由器调用控制器。通过ng控制器指令直接从html调用控制器(
ng controller=“SigninCtrl as signin”
在您的情况下)将不会注入inProgress,因此您将出现此错误。

TypeScript没有注册任何内容。这将被传输到普通javascript,而不是其他。不过,我似乎很想念你的错误。我在代码中注意到的唯一一件事是对控制器类的字符串引用。通常我使用typescript引用,即不带引号。javascript是否如预期的那样?@Thomas您是否能够解决此问题?
static $inject = ['$state', 'inProgress'];
constructor(public $state : angular.ui.IState, private inProgress) {
    this.init();                
}