如何在angular2中触发从一个组件到另一个组件的功能?
发布时间:2020-12-17 09:57:30 所属栏目:安全 来源:网络整理
导读:我有两个组件componentA和componentB.他们都是sibbling,并且是componentMother的孩子. 我想这样做,当我点击componentA上的按钮时,它会触发componentB上的函数调用. 是使用具有可观察的服务并且使用componentA发出componentB订阅的事件或者是否有更好/最佳实
我有两个组件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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |