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 相关文章推荐
JavaScript 构造函数 面相对象学习必备知识
Jun 09 Javascript
IE6弹出“已终止操作”的解决办法
Nov 27 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
Jul 31 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
JavaScript中字面量与函数的基本使用知识
Oct 20 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
Aug 06 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 Javascript
angularjs下拉框空白的解决办法
Jun 20 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
vue中实现左右联动的效果
Jun 22 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
用PHP实现多级树型菜单
2006/10/09 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
Python3如何判断三角形的类型
2020/04/12 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
怎么样写好简历中的自我评价
2013/10/25 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
股东协议书范本
2014/04/14 职场文书
志愿者活动总结报告
2014/06/27 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
2016开学第一课心得体会
2016/01/23 职场文书