Angular4 中内置指令的基本用法


Posted in Javascript onJuly 31, 2017

前言

大家都知道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,我实际开发中一次没用过,也是查着资料测试一遍写下来的。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Javascript 相关文章推荐
jQuery控制iFrame(实例代码)
Nov 19 Javascript
js实现仿QQ秀换装效果的方法
Mar 04 Javascript
jQuery实现动画效果circle实例
Aug 06 Javascript
jquery.cookie.js用法实例详解
Dec 25 Javascript
Treegrid的动态加载实例代码
Apr 29 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
Jun 10 Javascript
JS数组操作中的经典算法实例讲解
Jul 26 Javascript
vue获取dom元素注意事项
Dec 28 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
Aug 15 Javascript
用webpack4开发小程序的实现方法
Jun 04 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
Jun 01 Javascript
微信小程序 WeUI扩展组件库的入门教程
Apr 21 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
Jul 31 #Javascript
浅谈对Angular中的生命周期钩子的理解
Jul 31 #Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
Jul 31 #Javascript
vue组件 $children,$refs,$parent的使用详解
Jul 31 #Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 #Javascript
Kindeditor单独调用多图上传实例
Jul 31 #Javascript
老生常谈ES6中的类
Jul 31 #Javascript
You might like
德生H-501的评价与改造
2021/03/02 无线电
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
for循环连续求和、九九乘法表代码
2012/02/20 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
js loading加载效果实现代码
2009/11/24 Javascript
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
python去掉字符串中重复字符的方法
2014/02/27 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
Python函数返回值实例分析
2015/06/08 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
Python 导入文件过程图解
2019/10/15 Python
python高级特性简介
2020/08/13 Python
毕业生自荐信如何写
2014/03/24 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
道德模范事迹材料
2014/12/20 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android