Angular 組件間傳值的方法有以下幾種:
使用 @Input 和 @Output 裝飾器:@Input 裝飾器用于將數據從父組件傳遞到子組件,@Output 裝飾器用于將數據從子組件傳遞到父組件。通過在父組件中綁定屬性到子組件的輸入屬性上,可以實現從父組件向子組件傳遞數據;通過在子組件中使用 EventEmitter 和 @Output 裝飾器,可以將事件從子組件發送到父組件。
使用服務:Angular 的服務是用來共享數據和邏輯的。可以創建一個服務,然后在需要傳遞數據的組件中注入該服務,并通過該服務中的方法來傳遞數據。
使用路由參數:可以通過在路由配置中定義參數,然后在組件中通過 ActivatedRoute 服務來獲取路由參數。
使用路由查詢參數:可以通過在路由配置中定義查詢參數,然后在組件中通過 ActivatedRoute 服務來獲取查詢參數。
使用路由狀態:可以使用路由狀態來共享數據。通過在組件中使用 ActivatedRouteSnapshot 和 RouterStateSnapshot,可以獲取當前路由狀態的數據。
使用 BehaviorSubject 或 Subject:BehaviorSubject 和 Subject 是 RxJS 提供的兩種可觀察對象。可以使用這兩種對象來在組件之間共享數據。通過訂閱這些可觀察對象,在一個組件中修改數據,在另一個組件中監聽數據的變化。
這些方法可以根據具體的需求和場景來選擇使用。