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 相关文章推荐
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
Feb 07 Javascript
Javascript引用指针使用介绍
Nov 07 Javascript
详解JavaScript中的Unescape()和String() 函数
Nov 09 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
Oct 05 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
详解小程序缓存插件(mrc)
Aug 17 Javascript
jQuery实现网页拼图游戏
Apr 22 jQuery
vue实现节点增删改功能
Sep 26 Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 Javascript
JavaScript字符串转数字的简单实现方法
Nov 27 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
第四节--构造函数和析构函数
2006/11/16 PHP
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
python文件比较示例分享
2014/01/10 Python
Python的Django框架中settings文件的部署建议
2015/05/30 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
python实现连续图文识别
2018/12/18 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
自荐信范文
2013/12/10 职场文书
妇联主席先进事迹
2014/05/18 职场文书
购房意向书
2014/08/30 职场文书
经营场所使用证明
2015/06/19 职场文书
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript