2016-12-01 26 views
2

鉱山$ stateProviderのコードがあります:AngularJS:UI-ルータの設定で解決約束

$stateProvider 
    .state("home", { 
     url: "/", 
     template: "<employee-info-component user='$resolve.user'></employee-info-component>", 
     resolve: { 
     user: function(individualFootprintService) { 
      var usr = individualFootprintService.getCurrentUser(); 
      return usr.then(function(data) { 
      return data; 
      }); 
     } 
     } 

それは私のサービスです:

function getCurrentUser() { 
    return $http 
    .get("/user") 
    .then(function(response) { 
     return response.data; 
    }); 
} 

これは私のコンポーネントに結合されています

 binding:{ 
       user: '<' 
     } 

このコントローラを試しました:

function individualFootprintController(user) { 
     var $ctrl = this; 
user.then(function (data) { 
      $ctrl.user = data; 
     }); 
} 

しかし、我々は例外 Error: [$injector:unpr] Unknown provider: userProvider <- user <- individualFootprintController

を受けていると我々はこのコントローラを試してみました:

function individualFootprintController() { 
      var $ctrl = this; 
      console.log($ctrl.user); 
    } 

しかしuserは、コントローラに付属していないと、その値はundefinedです。 私の質問は、コントローラから目的のオブジェクトにアクセスする方法です。

+0

解決策は、約束事に直接取り組み、解決された値を(それまでに)注入し、コントローラで約束を解決してはいけません。すべての ".then(関数)"を削除しようとしました – pdem

答えて

1

bindingの代わりにbindingsを使用してください。

+0

ありがとう、ナターシャ –

関連する問題