angular4 - Angular加载动态组件异常:Expression Changed After...

查看:97
本文介绍了angular4 - Angular加载动态组件异常:Expression Changed After...的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

使用动态组件加载的时候抛出异常:Angular 2 Expression Changed After It Has Been Checked Exception。
参考的 angular.io 上面的动态组件部分写的代码,不知道为啥抛除了这个错误。哪位大神帮忙看下。

解决方案

在加载动态组件时遇到 Angular 抛出这个异常,我在代码中的解决方案:

this.cdr.detach(); // 停止检测
let componentRef = viewContainerRef.createComponent(componentFactory);
(<ModalBodyComponent>componentRef.instance).data = this.config.data;
setTimeout(() => this.cdr.reattach()); // 待组件动态加载完之后重新 attach

detach() 方法的文档:
Detaches the change detector from the change detector tree.

这篇关于angular4 - Angular加载动态组件异常:Expression Changed After...的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆