ng-content在有ngIf then else的情况下无法正常渲染,因为在ngIf then else中无法获取ng-content指令中的内容。解决方法是使用ng-template来代替ng-content。
例如,原本使用ng-content的语句:
改为使用ng-template的语句:
其中,contentTemplate是ng-template的一个变量,其内容是原来ng-content中的内容。
具体实现示例如下:
这是从父级中传递的数据
没有内容可显示
在这个例子中,父组件传递一个数据shouldShowContent到子组件中,用于控制是否显示ng-content中的内容,如果shouldShowContent为true,就会显示父组件中的数据。
上一篇:Angular:模块导出不显示