Angular 组件间传值的方法有以下几种:
使用 @Input 和 @Output 装饰器:@Input 装饰器用于将数据从父组件传递到子组件,@Output 装饰器用于将数据从子组件传递到父组件。通过在父组件中绑定属性到子组件的输入属性上,可以实现从父组件向子组件传递数据;通过在子组件中使用 EventEmitter 和 @Output 装饰器,可以将事件从子组件发送到父组件。
使用服务:Angular 的服务是用来共享数据和逻辑的。可以创建一个服务,然后在需要传递数据的组件中注入该服务,并通过该服务中的方法来传递数据。
使用路由参数:可以通过在路由配置中定义参数,然后在组件中通过 ActivatedRoute 服务来获取路由参数。
使用路由查询参数:可以通过在路由配置中定义查询参数,然后在组件中通过 ActivatedRoute 服务来获取查询参数。
使用路由状态:可以使用路由状态来共享数据。通过在组件中使用 ActivatedRouteSnapshot 和 RouterStateSnapshot,可以获取当前路由状态的数据。
使用 BehaviorSubject 或 Subject:BehaviorSubject 和 Subject 是 RxJS 提供的两种可观察对象。可以使用这两种对象来在组件之间共享数据。通过订阅这些可观察对象,在一个组件中修改数据,在另一个组件中监听数据的变化。
这些方法可以根据具体的需求和场景来选择使用。