Разрешение доступа в компонентном контроллере в angularjs 1.5

Я пытаюсь связать с компонентом angularjs 1.5 значение разрешения без успеха. В определении состояния я заменил общее значение свойств шаблона значением имени моего нового компонента. как это:

.state('eventslogs.create', {
        url: '/create',
        template: '<addevent data="$resolve.addevent"></addevent>.',
        resolve: {
          addevent: newEventslog
        },
        data: {
          roles: ['admin'],
          pageTitle: 'Eventslogs Create'
        }
      })

NewEventslog - это функция, которая внедряет один из моих сервисов.

newEventslog.$inject = ['EventslogsService'];

  function newEventslog(EventslogsService) {
    return new EventslogsService();
  }

В моем контроллере я пробовал несколько способов, но ничего не работает

angular.module('eventslogs')
  .component('addevent', {
    templateUrl: 'addevent.client.component.view.html',
    bindings: {
      data: '<'
    },
    controller: function($scope, $element) {
      var vm = this;
      vm.eventslog = vm.data;
    }

Но vm.eventslog всегда приводит к неопределенному значению, что не так с моим подходом? Если я использую "@" вместо "<" в привязках, vm.addevent приводит к строке со значением "$ resource.addevent", а не как экземпляр функции newEventslog.

Я использую UI-маршрут версии 0.2.18

1 ответ

Решение

Не уверен, но попробуйте это внутри компонента

this.$onInit = () => {
  vm.eventslog = vm.data;
}
Другие вопросы по тегам