鉱山$ 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
です。 私の質問は、コントローラから目的のオブジェクトにアクセスする方法です。
解決策は、約束事に直接取り組み、解決された値を(それまでに)注入し、コントローラで約束を解決してはいけません。すべての ".then(関数)"を削除しようとしました – pdem