angular2系统学习 - 结构型指令
来源:互联网 发布:印尼社交软件 编辑:程序博客网 时间:2024/05/29 14:14
1.简介
ng2中指令可分为三种:
- 组件
- 属性型指令
- 结构型指令
结构型指令通过添加和删除DOM元素来改变DOM的布局。
常用指令如:ngIf, ngSwitch, ngFor。
html5中使用template标签来防止隐藏的内容,而在ng2中,遇到template标签会将之替换成空的script标签。
2.ngSwitch
由于在教程中没有用过ngSwitch,而ngIf,ngFor用的很多,所以这里先插入一下ngSwitch的用法。
<div [ngSwitch]="state"> <template [ngSwitchCase]="'state1'">State1</template> <template [ngSwitchCase]="'state2'">State2</template> <template [ngSwitchCase]="'state3'">State3</template> <template ngSwitchDefault>default</template></div>
3.(*)语法糖
关于这里的*效果,我们来看段代码
part1
<p *ngIf="condition">...</p>
part2
<template [ngIf]="condition"> <p>...</p></template>
其实part1与part2的效果完全相同,其中差异不难体会。
4.自定义结构型指令
import { Directive, TemplateRef, ViewContainerRef} from '@angular/core';@Directive({ selector: '[myUnless]' })export class MyUnlessDirective { constructor( private templateRef: TemplateRef<any>, private viewContainer: ViewContainerRef ) { } @Input() set myUnless(condition: boolean) { if (!condition) { this.viewContainer.createEmbeddedView(this.templateRef); } else { this.viewContainer.clear(); } }}
- TemplateRef: 访问模板。
- ViewContainerRef: 渲染器。
5.小结
结构型指令没有讲太多。目前掌握的东西也很少。比如为什么虽然都是用@Directive装饰的指令,为什么还要细化结构型指令和属性型指令等。在后期的学习中如果有答案的话我会随时更新本结内容。
0 0
- angular2系统学习 - 结构型指令
- Angular2+ 结构型指令
- angular2系统学习 - 属性型指令
- Angular2 之 结构型指令
- Angular2属性型指令
- 6.揭秘angular2学习 ------- 指令
- Angular2学习_1(内置指令)
- angular2系统学习 ------杂项
- angular2系统学习 ------杂项
- angular2系统学习 - 管道
- angular2系统学习 - 疑问
- angular2系统学习 - 动画
- Angular2 之 属性型指令
- angular2系统学习 - 用户输入
- angular2系统学习 - 路由与导航(2)
- angular2系统学习 - 路由与导航(3)
- angular2系统学习 - 路由与导航(4)
- angular2系统学习 - 路由与导航(5)
- spring+springmvc+hibernate+maven
- 10分钟搭建Windows平台Spark开发环境并调试运行Naive Bayes分类程序
- setLayoutParams
- linux环境中用SQL Server?还是MySQL?
- 常见网络诊断命令解析及示例
- angular2系统学习 - 结构型指令
- linux memcache安装和扩展
- NumPy提供了一些使用占位符创建数组的函数#split_img.py
- Spring MVC是如何找到控制器的
- web项目本地jar包存放路径(学习笔记)
- 关于Android开发中的view的id
- 配置jdk环境变量导致 vim ls命令不能用的问题
- 《喵神-王巍博客》读书笔记,开发篇(1)
- 给定数轴上n个点,找出其中一个点使其到其他各个点距离之和最小。