2016-01-15 5 views
6

Type RouterでUIルータの解決方法をどのように使うのか不思議です。UIルータの解決とタイプスクリプト

.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がサービスとして登録しようとしているため、不明なプロバイダエラーが発生しています。

enter image description here

これを行うことができますか?

+3

TypeScriptは何も登録していません。これは普通のjavascriptに変換され、他には何もありません。私はあなたのエラーを見逃しているようです。私があなたのコードで気づいているのは、コントローラクラスへの文字列参照だけです。通常は引用符を使わずに、代わりにタイスクリプトの参照を使用します。期待どおりのjavascriptですか? –

+1

@トーマスはこの問題を解決できましたか? – harishr

答えて

1

このようにそれを注入してみてください。

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

は試しましたが、動作しません – harishr

0

は、あなただけのルータを介してコントローラを起動していることを確認します。 htmlからng-controllerディレクティブ(あなたの場合はng-controller="SigninCtrl as signin")からコントローラを直接呼び出すと、inProgressが注入されないので、このエラーになります。