作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
定义一个简单的组件如下:
@Component({
selector: 'loader',
template: `<div *ngIf='false'>
<ng-content></ng-content>
</div>`,
})
export class Loader {}
像这样使用时:
<loader>
{{model.something}}
</loader>
如果模型在父级中未定义,我仍然会收到模板绑定(bind)错误,因为即使使用 ngIf=false
,它也会尝试解析绑定(bind)。为什么会这样?
最佳答案
因为要投影到 ngContent
元素中的 loader
组件的内部内容,会使用当前组件上下文(this
),即使组件模板没有注入(inject) DOM。
它的工作方式与 ng-transclude
在 Angular 1.X 中的工作方式相同
你应该在这里使用Elvis Operator
来避免这样的问题
<loader>
{{model?.something}}
</loader>
关于javascript - ngIf=false with ngContent 仍然加载模板绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38245518/
定义一个简单的组件如下: @Component({ selector: 'loader', template: ` `, }) export class Lo
我是一名优秀的程序员,十分优秀!