>

저는하위 구성 요소에서상위 구성 요소이벤트발급합니다

자식 구성 요소

export class ItemComponent {
  @Output() id = new EventEmitter()
  deleteProduct(id) {
    this.id.emit(id)
  }
}

하위 구성 요소 태그

<app-product-item (id)="getId($event)"></app-product-item>

부모 구성 요소에서 이벤트를 수신하십시오

getId(id){
  console.log(id)
}

이 작동합니다.

이제 동일한 동작이 필요하지만routerLink로 액세스하는구성 요소<app-product-item (id)="getId($event)"></app-product-item> 와 같은태그는 아닙니다.  routerLink로 액세스하기 때문에 존재하지 않습니다.

라우팅 설정 :

const routes: Routes = [
    { path: '', component: WinesComponent },
    { path: 'app-wines', component: WinesComponent },
    { path: 'app-about', component: AboutComponent },
    { path: 'app-wine-detail/:id', component: WineDetailComponent },
    { path: 'app-wine-add', component: WineAddComponent }
];

  • 답변 # 1

    BehaviorSubject 를 사용할 수 있습니다  RxJ에서 다른 구성 요소의 한 구성 요소에서 이벤트를 발생/트리거합니다.

    서비스 파일이 있다고 가정하자 common.service.ts

    와이즈 비즈 와이즈 비즈

    child.component.ts

    와이즈 비즈

    parent.component.ts

    와이즈 비즈

  • 답변 # 2

    서비스를 통해 데이터를 액세스해야하는 구성 요소로 데이터를 전달할 수 있습니다.

    https://angular.io/guide/component-interaction#parent-and-children-communicate-via-a-service

    import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs';

관련 자료

  • 이전 python - Pyatspi를 설치하는 방법?
  • 다음 node.js - nodejs에서 가져 오기에서 필요로 변환하는 방법