を未定義のデータは、私は、コンポーネント& UI-ルータとの決意を使用してデータをこの問題を持って約束を解決することは、コントローラコンポーネント:UI-ルータの決意をコントローラに注入しないだろう、
サービスで「未定義」であり、「後」 :
class userService {
constructor ($http, ConfigService, authService) {
this.$http = $http;
this.API_URL = `${ConfigService.apiBase}`;
this.authService = authService;
}
testAuth() {
return this.$http.get(this.API_URL + '/test-auth')
}
getCollaboratores() {
return this.$http.get(this.API_URL + '/collaboratores').then(
(resolve) => { // promise resolve
console.log('Success',resolve.data);
}
)
}
getAccount() {
var config = {
headers: { "X-Shark-CollaboratoreId" : "1"}
};
return this.$http.get(this.API_URL + '/accounts' + '/' + 1, config).then(
(resolve) => { // promise resolve
console.log('Success',resolve.data);
}
)
}
モジュール/コンポーネント/ルーティング:
.config(($stateProvider, $urlRouterProvider) => {
"ngInject";
$urlRouterProvider.otherwise('/');
$stateProvider
.state('core', {
redirectTo: 'dashboard',
url: '/core',
component: 'core',
resolve: {
userdata: (userService) => {
return userService.getCollaboratores();
},
accdata: (userService) => {
return userService.getAccount();
}
}
});
})
コントローラー:
let self;
class CoreController {
constructor($state,userService,authService,userdata,accdata) {
this.name = 'core';
this.$state = $state;
this.userService = userService;
this.authService = authService;
this.userdata = userdata;
this.accdata = accdata;
console.log('name',this.name);
self = this;
console.log('userdata',self);
}
}
CoreController.$inject = ['$state','userService', 'authService','userdata','accdata'];
export default CoreController;
"HTTP" の後の約束で "解決" オブジェクトは
this.userdata = userdata;
this.accdata = accdata;
を呼び出すコントローラに注入した後に定義されていません!
ここで、バグはありますか?以下に
おかげでたくさん...
を。 '? –
ouputは正しいです:成功Object {data:Array [1]} ....すべてのコードが正しく動作しない場合、私は約束を解決した後にrenderを表示するためにresolveを使用しようとします。 –