0

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;
4

0 に答える 0