我正在创建一个DOM结构,并且只想在第一时间在某些可视组件中添加一些部分,并且不希望它们一次又一次地刷新,这就是* ngIf的工作方式.这是为了避免绑定一次又一次地执行我知道一旦创建就永远不会改变的事情.换句话说,Angular1有::运算符帮助实现这一点.
Angular2中是否有* ngIf的一次性绑定?如果在其他问题中讨论过,请指出我的问题.
解决方法
您可以创建自己的结构指令,它将在初始页面加载时评估传递的表达式,并根据传递的条件值显示或不在DOM中显示模板,如下所示:
import { Directive,Input,TemplateRef,ViewContainerRef } from '@angular/core'; @Directive({ selector: '[customNgIf]' }) export class CustomNgIfDirective { @Input("customNgIf") condition: boolean; constructor( private templateRef: TemplateRef<any>,private viewContainer: ViewContainerRef) { } ngOnInit() { if (condition) { this.viewContainer.createEmbeddedView(this.templateRef); } else { this.viewContainer.clear(); } } }
你会像这样使用它:
<div *customNgIf="expression"> Test </div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。