首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 7通过两次调用的服务订阅方法通信

Angular 7通过两次调用的服务订阅方法通信
EN

Stack Overflow用户
提问于 2019-02-20 19:13:41
回答 1查看 300关注 0票数 0

我正在使用angular,试图与非父子组件进行通信。所以我通过服务来传达它

service.ts

代码语言:javascript
复制
Istoggle=false; 
@Output() change: EventEmitter < boolean > = new EventEmitter();
toggle() {
    this.Istoggle= !this.Istoggle;
    this.toggle.emit(this.Istoggle);
}

search.ts

代码语言:javascript
复制
submit():void{
  this.service.toggle();
}

Home.ts

代码语言:javascript
复制
ngOnInit() {    
   this.service.change.subscribe(_toggle=> {
           //some code here
    }
}

因此,当我在Home component中单击submit时,切换subscribe时会点击两次

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 21:39:40

正如我所看到的,您的服务中有3个名称完全相同的字段。其中两个被遗漏了。你可以这样做

代码语言:javascript
复制
value=false; 
search: EventEmitter < boolean > = new EventEmitter();
toggle() {
   this.value = !this.value;
   this.search.emit(this.value);
}

在您的服务和组件中:

代码语言:javascript
复制
ngOnInit() {    
  this.service.search.subscribe(value => {
       //some code here
  }
}

请注意,我删除了@Output()装饰器。它仅在组件内部使用,仅用于父子通信。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54784980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档