定义一个简单的组件如下:
@Component({
selector: 'loader',
template: `<div *ngIf='false'>
<ng-content></ng-content>
</div>`,
})
export class Loader {}
当像这样使用时:
<loader>
{{model.something}}
</loader>
如果在父级中未定义模型,我仍然会得到模板绑定错误,因为即使使用ngIf = false,它也会尝试解析绑定.为什么会这样?
最佳答案 因为要在ngContent元素内部投影的loader组件的内部内容是使用当前组件上下文(this)编译一次,即使组件模板没有注入DOM.
它的工作方式与Angular 1.X中的ng-transclude工作方式相同
您应该在此处使用Elvis Operator来避免此类问题
<loader>
{{model?.something}}
</loader>