gpt4 book ai didi

Angular 2 : Is one time binding for *ngIf available?

转载 作者:太空狗 更新时间:2023-10-29 17:15:37 26 4
gpt4 key购买 nike

我正在创建一个 DOM 结构,并且只想在第一时间在一些可视组件中添加一些部分,并且不希望它们一次又一次地刷新,这就是 *ngIf 的工作方式。这是为了避免绑定(bind)一次又一次地执行,因为我知道一旦创建就永远不会改变。换句话说,Angular1 有 :: 运算符来帮助实现这一点。

*ngIf 在 Angular2 中是否有一次性绑定(bind)?如果在其他问题中对此进行了讨论,请指出问题。

最佳答案

您可以创建自己的结构指令,它将在初始页面加载时评估传递的表达式,并根据传递的条件值在 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>

关于 Angular 2 : Is one time binding for *ngIf available?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com