Я безуспешно пытаюсь привязать к компоненту 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-route версии 0.2.18

-1
xzegga 23 Дек 2016 в 18:04

1 ответ

Лучший ответ

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

this.$onInit = () => {
  vm.eventslog = vm.data;
}
2
dimson d 23 Дек 2016 в 21:49