如何在angular2中触发从一个组件到另一个组件的功能?

我有两个组件componentA和componentB.他们都是sibbling,并且是componentMother的孩子.

我想这样做,当我点击componentA上的按钮时,它会触发componentB上的函数调用.

是使用具有可观察的服务并且使用componentA发出componentB订阅的事件或者是否有更好/最佳实践方式的方法

我可能会使用一个使用Subject的服务.这样它既可以发布也可以订阅
import { Subject } from 'rxjs/Subject';

class SomeService {
  private _subject = new Subject<any>();

  newEvent(event) {
    this._subject.next(event);
  }

  get events$() {
    return this._subject.asObservable();
  }
}

您的组件可以发布,也可以订阅

@NgModul({
  providers: [ SomeService ]
})
class AppModule {}

@Component()
class ComponentOne {
  constructor(private service: SomeService) {}

  onClick() {
    service.newEvent('clicked!');
  }
}

@Component()
class ComponentTwo {
  constructor(private service: SomeService) {}

  ngOnInit() {
    this.service.events$.forEach(event => console.log(event));
  }
}

也可以看看:

> Getting Started on Subjects

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...