web前端全系列 教程
1839个小节阅读:2244.2k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
使用Angular-Cli创建指令
执行ng generate directive customIf
或者`ng g d customIf
。
最终生成src/app/custom-if.directive.ts
文件。
并且指令要在模块的declarations
中声明。
xxxxxxxxxx
import { Directive } from '@angular/core';
@Directive({
selector: '[appCustomIf]'//可以自定义
})
export class CustomIfDirective {
constructor() {
}
}
引入TemplateRef
,ViewContainerRef
xxxxxxxxxx
constructor(private tl: TemplateRef<any>, private viewContainer: ViewContainerRef) {
}
获取输入,根据条件做出判断
xxxxxxxxxx
//使用属性的setter方法
@Input() set appCustomIf(condition: boolean) {//condition为属性的值,也就是判断条件
if (condition) {
//如果条件为真,则<ng-template>的内容添加到视图容器
this.viewContainer.createEmbeddedView(this.tl)
return
}
//如果条件为假,则把视图容器中的内容清空
this.viewContainer.clear()
}
应用指令
xxxxxxxxxx
<div *appCustomIf='true'>
hello!!!!
</div>
<div *appCustomIf='false'>
hello!!!!
</div>
<div *appCustomIf='1>2'>
hello!!!!
</div>
实时效果反馈
1.下列描述错误的是:
A (vc:ViewContainerRef).createEmbeddedView(this.tl)
,是用来将<ng-template>
的视图添加到视图容器
B (vc:ViewContainerRef).createEmbeddedView(this.tl)
会生成<ng-template>XXX</ng-template>
DOM。
答案
1=>B