Angular4 中内置指令的基本用法
前言
大家都知道ng内置了许多自定义的指令,这避免了我们自己去造*。同时,ng也提供了自定义指令的功能,可以让我们的页面元素标签更加实例化。
在这篇文章中,我们将分别列举每一个内置指令的用法,并提供一个例子作为演示。尽量用最少最简单的描述,让你在更快更准确地学会每一种内置指令的基本用法。
ngfor
作用:像 for 循环一样,可以重复的从数组中取值并显示出来。
例子:
// .ts this.userinfo = ['张三', '李四', '王五']; // .html <div class="ui list" *ngfor="let username of userinfo"> <div class="item">{{username}}</div> </div>
讲解:
他的语法是 *ngfor="let username of userinfo"
,其中 userinfo 是从中取值的数组,username 是每次从中取出来的值。然后在这个标签里面的内容就会重复执行,并通过双向绑定,将 username 显示出来。
ngif
作用:根据条件决定是否显示或隐藏这个元素。
例子:
// .html <div *ngif="false"></div> <div *ngif="a > b"></div> <div *ngif="username == '张三'"></div> <div *ngif="myfunction()"></div>
讲解:
- 永远不会显示
- 当 a 大于 b 的时候显示
- 当 username 等于 张三 的时候显示
- 根据 myfunction() 这个函数的返回值,决定是否显示
ngswitch
作用:防止条件复杂的情况导致过多的使用 ngif。
例子:
// .html <div class="container" [ngswitch]="myage"> <div *ngswitchcase="'10'">age = 10</div> <div *ngswitchcase="'20'">age = 20</div> <div *ngswitchdefault="'18'">age = 18</div> </div>
讲解:
[ngswitch] 先与目标进行绑定,ngswitchcase 列出每个可能性,ngswitchdefault 列出默认值。
ngstyle
作用:可以使用动态值给特定的 dom 元素设定 css 属性。
例子:
// .ts backcolor: string = 'red'; // .html <div [style.color]="yellow"> 你好,世界 </div> <div [style.background-color]="backcolor"> 你好,世界 </div> <div [style.font-size.px]="20"> 你好,世界 </div> <div [ngstyle]="{color: 'white', 'background-color': 'blue', 'font-size.px': '20'}"> 你好,世界 </div>
讲解:
- 直接设置颜色为 yellow。
- 设置背景颜色为 backcolor,并可以在 .ts 文件中对 backcolor 的值进行修改。
- 设置字体大小,需要注意的是 只写 font-size 会报错,必须在后面加上 .px。当然 .em .% 都是可以的。
- 前三种都是只设置一个,写 [ngstyle] 可以同时写多个,使用花括号包住里面的内功。需要注意的是连字符 - 是不允许出现在对象的键名当中的,如果使用 background-color 等时需要加上单引号。
ngclass
作用:动态地设置和改变一个给定 dom 元素的 css类。
例子:
// .scss .bordered { border: 1px dashed black; background-color: #eee; } // .ts isbordered: boolean = true; // .html <div [ngclass]="{bordered: isbordered}"> 是否显示边框 </div>
讲解:
- scss 中设置了样式,相当于你建了一个
class="bordered"
。 - ts 中新建了一个 isbordered,用于判断是否显示 .scss 中的样式。
- html 中用 isbordered 作为 bordered 是否显示 的判断依据。
ngnonbindable
作用:告诉 angular 不要绑定页面的某个部分。
例子:
.html <div ngnonbindable> {{我不会被绑定}} </div>
讲解:
使用了 ngnonbindable ,花括号就会被当做字符串一起显示出来。
总结
日常开发中,用 ngfor 和 ngif 应该是最多的了,所以把他们两个写在了前面。至于 ngnonbindable,我实际开发中一次没用过,也是查着资料测试一遍写下来的。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持