0
请帮助提出指令的可见性。在模板中,我有如下指令: <h1 *appTest visibility="true" id="myDirective">navigation:</
H1>如何使指示器显示开关?
该指令通可视性VAR到:
import { Directive, Input, OnInit, ViewContainerRef, TemplateRef } from '@angular/core';
@Directive({
selector: '[appTest]'
})
export class TestDirective implements OnInit {
@Input() visibility: boolean;
constructor(private viewContainer: ViewContainerRef, private template: TemplateRef<Object>) {
}
ngOnInit() {
console.log(this.visibility);
if(this.visibility) {
this.viewContainer.createEmbeddedView(this.template);
} else {
this.viewContainer.clear();
}
}
}
但是控制台显示:
不确定
而且#myDirective是不在浏览器上显示。我需要显示并隐藏#myDirective,具体取决于属性“visibility”的值
您是否尝试为可见性设置默认值visibility:boolean = false? – zgue
我需要从属性 –
获得可见性参数。通过在模板中使用'ngIf'指令并为其分配一个动态'boolean'变量,可以直接显示/隐藏元素。然而,这种方法将从DOM中完全删除相应的模板(不仅仅保留'visibility:hidden',只隐藏它在页面上,在DOM中保留该元素的空间)。你只是想根据你的输入变量切换元素的可见性或者从DOM中完全添加/删除元素吗? – amal