Разрешение доступа в компонентном контроллере в 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;
}