我很好奇我将如何使用UI路由器解决TypeScript问题。
.state("signin.notActivated", <ng.ui.IState> {
controller: "SigninCtrl",
controllerAs: "signin",
url: "/notActivated",
resolve: {
inProgress: function() {
return { formData : null }
}
}
})
在我的控制器中,我已经注入了我的决心。
constructor(public $state : angular.ui.IState, private inProgress) {
this.init();
}
private init = () => {
this.someData = this.inProgress.formData; // error
}
我收到一个未知的提供程序错误,因为TypeScript正在尝试将其注册为服务。
可以这样做吗?
答案 0 :(得分:1)
尝试像这样注入:
static $inject = ['$state', 'inProgress'];
constructor(public $state : angular.ui.IState, private inProgress) {
this.init();
}
答案 1 :(得分:0)
确保仅通过路由器调用控制器。直接从html到ng-controller指令(在你的情况下为ng-controller="SigninCtrl as signin"
)调用控制器将不会注入inProgress,因此你将最终出现此错误。