Связь между не родительскими и дочерними компонентами - PullRequest
0 голосов
/ 15 октября 2018

Я просто хочу провести эксперимент.Поэтому, когда я нажимаю кнопку компонента A, должна вызываться некоторая функция компонента B.Но я не знаю, как это сделать, если эти компоненты не являются дочерними по отношению друг к другу.Можете ли вы помочь мне

1 Ответ

0 голосов
/ 15 октября 2018

Если между компонентами нет дочерних и родительских отношений

Вам следует создать службу с Subject и внедрить эту службу в оба этих компонента.

some.service.ts

@Injectable()
export class SomeService {
   public testSubject = new Subject<string>();
}

comp-a.component.ts

export class CompAComponent {
    constructor(private someService: SomeService) {
    }

    btnClickHandler() {
       this.someService.testSubject.next('clicked');
    }
}

comp-b.component.ts

export class CompBComponent {

    constructor(private someService: SomeService) {
       this.someService.testSubject.subscribe(next => { this.someFunction(data);});
    }

    someFunction(msg) {
       console.log(msg);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...