UI-маршрутизатор AngularJS ожидает разрешения родительского состояния до дочернего состояния - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть родительский маршрут для завершения разрешения, прежде чем я разрешу данные о моих дочерних состояниях.В настоящее время детское состояние разрешается самостоятельно.

В приведенном ниже коде я не хочу разрешать организацию в дочернем состоянии (и это инициализирует мой контроллер) до разрешения rpe в родительском состоянии.

Рассматривал это дляпоследние пару часов, но не могу понять это.Буду признателен за любую помощь!

Информация о пакете:

ui-router: 1.0.0-beta.1
angular: 1.5.9

Вот код:

.state('app', {
  url: '/app',
  abstract: true,
  template: '<app layout="row" flex></app>',
  resolve: {
    // other resolves
    rpe: ['authUser', 'RPEService',
      function (authUser, RPEService) {
        return RPEService.init();
      }
    ]
  }
})
.state('app.dashboard', {
  url: '/dashboard/?supportchat',
  template: '<dashboard flex organization="$resolve.organization"></dashboard>',
  data: {
    title: 'Dashboard',
    hideBack: true
  },
  resolve: {
    organization: ['OrganizationService', 'AuthService', function (OrganizationService, AuthService) {
      return OrganizationService.find(AuthService.user.organization_id).then(response => {
        return response.data;
      });
    }]
  }
})

1 Ответ

0 голосов
/ 16 апреля 2019

Вы пытались ввести родительское разрешение как зависимость от дочернего состояния?Как то так:

.state('app', {
  url: '/app',
  abstract: true,
  template: '<app layout="row" flex></app>',
  resolve: {
    // other resolves
    rpe: ['authUser', 'RPEService',
      function (authUser, RPEService) {
        return RPEService.init();
      }
    ]
  }
})
.state('app.dashboard', {
  url: '/dashboard/?supportchat',
  template: '<dashboard flex organization="$resolve.organization"></dashboard>',
  data: {
    title: 'Dashboard',
    hideBack: true
  },
  resolve: {
    organization: ['OrganizationService', 'AuthService', 'rpe', function (OrganizationService, AuthService, rpe) {
      return OrganizationService.find(AuthService.user.organization_id).then(response => {
        return response.data;
      });
    }]
  }
})
...