首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将数据从组件发送到模块?

如何将数据从组件发送到模块?
EN

Stack Overflow用户
提问于 2019-05-29 07:27:32
回答 2查看 66关注 0票数 1

我有一个组件,其中我有flagPerfil变量,我需要将这个变量发送到我的模块。

我的服务

代码语言:javascript
复制
export class ListUserService {
    public flagPerfil = boolean;
    changeFlagPerfil() {
        console.log('EEE' + this.flagPerfil);
        this.flagPerfil ? this.flagPerfil = false : this.flagPerfil = true;
    }

组件类:

代码语言:javascript
复制
@Component({
    selector: 'app-list-user',
    templateUrl: './list-user.component.html',
    styleUrls: ['./list-user.component.scss'],
    providers: [ListUserService]
})
export class ListUserComponent implements OnInit {
    private flagPerfil = false;

    getFlag() {
        return this.flagPerfil;
    }

这是视图list-user.component.html

代码语言:javascript
复制
<span *ngIf="!flagPerfil">
  <input type="button" id="usuarios" name="more" (click)="changeFlagPerfil()"
    value="Amigos">
</span>

我有一个模块,我想在模块中注入服务,因为我需要FlagProfile变量

代码语言:javascript
复制
  @NgModule({
    imports: [
        IonicModule,
        CommonModule,
        FormsModule,
        RouterModule.forChild([{path: '', component: Tab1Page}])
    ],
    declarations: [Tab1Page, ListUserComponent, FriendsComponent]
})
export class Tab1PageModule {
    public flagPerfil: boolean;

    constructor(private listUserService: ListUserService) {
        this.flagPerfil = listUserService.flagPerfil;
        console.log('FLAG', listUserService.flagPerfil);
    }
}

如何使用事件Emit?

我需要该模块自动听到该变量的更改

EN

回答 2

Stack Overflow用户

发布于 2019-05-29 07:59:58

代码语言:javascript
复制
export class ListUserService {
    public flag$ = new Subject< boolean >();

}


export class Tab1PageModule {
    public flagPerfil: boolean;

    constructor(private listUserService: ListUserService) {
        listUserService.$flags.subscribe((flag)=>{
           console.log('FLAG', flag;
           this.flagPerfil = flag;
      });

    }
}


export class ListUserComponent implements OnInit {
    private flagPerfil = false;

    getFlag() {
        return this.flagPerfil;
    }


    constructor(private listUserService: ListUserService) {

    }
    functionThatGetsCalledWhenTheFlagIsChanged(){
       this.listUserService.flags$.next(this.flagPerfil);

     }

}
票数 1
EN

Stack Overflow用户

发布于 2019-05-29 11:59:52

您可以将类型传递给主题,如主题的this教程中所示,例如= new Subject<boolean>();

一个类似的问题被问到了here

更新:我修复了格式,这是阻止<boolean>显示

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

https://stackoverflow.com/questions/56351238

复制
相关文章

相似问题

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