resolved
オブジェクトを に挿入するのに問題がありますcontroller
。私はAngularJS 1.5コンポーネントベース+ ES6構文を使用しています
ファイルは次のroutes.js
とおりです。
resolved object
garage
を取得して自分に注入したいのですが、後で注入したときにGarageViewController
どういうわけgarage
か未定義のように見えました。
プロセスが欠けているのか、それとも何か混乱しているだけなのか、どこが間違っていたのかわかりません。
助けてください、提案は本当に感謝しています。
const MainRoutes = ($stateProvider, $locationProvider, $urlRouterProvider) => {
"ngInject";
$locationProvider.html5Mode(true).hashPrefix('!');
$urlRouterProvider.otherwise('/');
// Define the routes
$stateProvider
.state('dashboard.garage-view', {
url: '/dashboard/garage/:id',
template: '<garage-view></garage-view>',
views: {
'': { template: '<garage-view></garage-view>' },
'content@dashboard.garage-view': {
templateUrl: 'src/app/templates/garage.view.template.html'
},
resolve: {
garage: (GarageService,$stateParams) => {
return GarageService.getGarage($stateParams.id)
}
}
});
export default MainRoutes;
ここにあるgarage.service.js
:
で使用$q
するための約束関数を作成するためgetGarage(id)
に使用しましたroutes.js
class GarageService {
constructor($http,$location,CONFIG_CONSTANTS,$q, AuthService) {
this.API_URL = CONFIG_CONSTANTS.API_URL;
this.$http = $http;
this.$location = $location;
this.$q = $q;
this.api_token = AuthService.api_token;
}
getGarage(id) {
const deferred = this.$q.defer();
this.$http.get(`${this.API_URL}/garage/${id}?api_token=${this.api_token}`)
.success(response => deferred.resolve(response))
.error(error => deferred.reject(error));
return deferred.promise;
}
}
GarageService.$inject = [
'$http',
'$location',
'CONFIG_CONSTANTS',
'$q',
'AuthService'
];
export default GarageService;
これがGarageViewController.js
class GarageViewController {
constructor(garage) {
console.log(garage)
}
}
GarageViewController.$inject = ['garage'];
export default GarageViewController;