美文网首页
Angular6中使用eventEmit在组件间通信后数据绑定无

Angular6中使用eventEmit在组件间通信后数据绑定无

作者: Liekkasz | 来源:发表于2018-11-01 16:06 被阅读0次

    问题描述:
    项目中某个页面需要在两个组件tree,list之间通过eventEmit通信,点击tree,list查询数据。同时List界面中某个变量在页面中进行了双向绑定,最终发现点击tree后,双向绑定的数据无法更新,但通过console.log打印变量却又发现变量更新了。

    问题解决:
    订阅消息、回调函数等,有可能跳出了Angular的zone,所以需要注入ChangeDetector,显式地通知Angular框架进行更新,类似于Angular1.x中的apply(),具体做法如下

    constructor(public eventEmitService: EventEmitService,
                    private changeDetectorRef: ChangeDetectorRef) {
        }
    
    ngOnInit() {
            // 接收发射过来的数据
            this.eventEmitService.eventEmit.subscribe((obj: any) => {
                    // 更新界面
                    this.changeDetectorRef.markForCheck();
            });
        }
    

    相关文章

      网友评论

          本文标题:Angular6中使用eventEmit在组件间通信后数据绑定无

          本文链接:https://www.haomeiwen.com/subject/lmyxxqtx.html