1

我不能使用@Input,因为这两个组件在组件树中相距很远。

使用服务看起来是唯一的选择,但是拥有一个本质上是所有组件 A 属性的副本的服务似乎非常过分。每次我在 A 中设置一个属性时,我还需要在服务中设置它,以便 B 可以访问它。看起来效率不是很高。

难道没有办法在组件B中注入组件A的实例吗?请注意,A 不是 B 的父/子。

干杯!

4

1 回答 1

0

您可以绑定到服务的属性

@Component({
  ...
  template: <div>{{myService.someProp}}</div>
})
class MyComponent {
  constructor(private myService:MyService){}
}

那么你不需要复制。

于 2016-11-23T16:10:54.170 回答