Обратный звонок или прослушивание от ребенка к родителю в UI Router, Angular 5? - PullRequest
0 голосов
/ 30 апреля 2018

В качестве простого примера типа шаблона, который я ищу, у меня есть компонент списка, который имеет событие «выбран элемент списка». Я не хочу предоставлять фактическое действие для этого события внутри самого компонента. Вместо этого я хочу, чтобы компонент-владелец предоставил его Насколько я понимаю, это довольно стандартный шаблон компонентов, поскольку он обеспечивает разделение обязанностей и поощряет повторное использование (так как вы можете использовать тот же компонент списка в другом контексте, где выбор приводит к другому действию).

В UI Router для AngularJS это было легко достигнуто с помощью шаблона вместо простой ссылки на компонент и передачи туда функции обратного вызова, например:

            .state('nav.clientHeader.clientList',{
            template: '<client-list clients="$ctrl.clients" ' +
            'onClick="$ctrl.loadClient"></client-list>',
            url: '/list'
        })

Мой вопрос: как это достигается в пользовательском интерфейсе Rotuer 2 для Angular 2+? Новый стандартный способ выполнения обратных вызовов в Angular 2+ - это использование декорации @Output для настройки шаблона emit / listen между родительским и дочерним элементами. Но похоже, что UI Router 2 не может установить привязку @Output? https://github.com/ui-router/angular/issues/138 - это полное чтение этой проблемы или речь идет о чем-то другом?

Я вижу ответы на похожие проблемы в основном Angular Router, предлагая использовать сервис для связи между двумя компонентами, но это кажется сумасшедшим подходом к чему-то столь простому, как onClick, особенно если учесть, что Angular действительно имеет правильный шаблон, доступный для него. через @ Output.

...