簡體   English   中英

如何在兩個同級組件之間傳遞數據?

[英]How to Pass data between two sibling components?

<container>
  <navbar>
    <summary></summary>
    <child-summary><child-summary>
  </navbar>
  <content></content>
</container>

因此,在我有一個選擇中,確實向和發送了值。

在組件內部使用(更改)可以很好地觸發OnSelect方法。

因此,我嘗試使用@ Input,@ Output和@EventEmitter指令,但是除非繼續使用父/子模式,否則我看不到如何將事件作為組件的@Input檢索。 我建立的所有示例在組件之間都有關系。

編輯:BehaviorSubject無法正常工作的示例(與API的所有連接服務均正常運行,僅在啟動時觸發了可觀察的對象,但在select值更改時不起作用)

首先在服務中創建BehaviorSubject

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
@Injectable()
export class DataService {

  private messageSource = new BehaviorSubject("default message");
  currentMessage = this.messageSource.asObservable();

  constructor() { }

  changeMessage(message: string) {
    this.messageSource.next(message)
  }

}

我創建了一個示例,以使用BehaviorSubject在組件之間發送消息

@Injectable()
export class MyService {

private messageSource = new BehaviorSubject<string>('service');
currentMessage = this.messageSource.asObservable();


  constructor() {
  }

  changeMessage(message: string) {
    this.messageSource.next(message)
  }
}

您可以在https://stackblitz.com/edit/behavior-subject-2019參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM