Я использую события в моем приложении ioni c, где я подписываюсь на одной странице, и публикую sh событие на другой странице. Теперь я вижу предупреждение о том, что События будут изменены с помощью Observables и состояния и эффекта Redux. Я использовал «События» в основном для вызова изменений функций компонента вне его, поэтому у меня были компоненты, например:
Component1.ts
this.events.subscribe('event:addValue1', (data: any) => {
this.valueName = 'VALUE1';
});
this.events.subscribe('event:addValue2', (data: any) => {
this.valueName = 'VALUE2';
});
, а за пределами этого компонента я вызывал паблику. sh методов с любой страницы, например:
Page1.ts
this.events.publish('event:addValue1');
Page2.ts
this.events.publish('event:addValue2');
Этим я смог изменить данные ( this.valueName) за пределами Component1.ts с любой другой страницы, просто опубликовав нужное событие. Я знаю, что это может показаться неправильным или неправильным подходом, но это был единственный способ, которым я вносил изменения в свой Component1.ts вне его с любой страницы.
Теперь я изменил это и просто поместил отдельные функции и чем я получаю к ним доступ через имя компонента ViewChild, например
@ViewChild('component') component: any;
....
this.component.functionAddValue1().
, и дополнительно я отправляю дополнительные параметры через Angular NavigationExtras, если мне нужно вычислить и вызвать какую-то функцию из Component1.ts, скажем, если я перейду к какой-то маршрут. До этого я просто вызывал events.publi sh, и я мог вносить изменения в Component1.ts на лету.