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代码)
Oct 29 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
Jul 15 Javascript
jquery easyui combox一些实用的小方法
Dec 25 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
Apr 14 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
JavaScript获取IP获取的是IPV6 如何校验
Jun 12 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
JavaScript设计模式之构造函数模式实例教程
Jul 02 Javascript
工作中常用到的ES6语法
Sep 04 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
微信小程序实现点击导航条切换页面
Nov 19 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
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
JS delegate与live浅析
2013/12/21 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
详解angular element()方法使用
2017/04/08 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
JS实现简易计算器
2020/02/14 Javascript
python 实现登录网页的操作方法
2018/05/11 Python
Python中交换两个元素的实现方法
2018/06/29 Python
python的中异常处理机制
2018/08/30 Python
自定义django admin model表单提交的例子
2019/08/23 Python
wxpython绘制圆角窗体
2019/11/18 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
python字符串下标与切片及使用方法
2020/02/13 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
Python修改DBF文件指定列
2020/12/19 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
Java如何格式化日期
2012/08/07 面试题
医学专业职业生涯规划范文
2014/02/05 职场文书
企业宣传稿范文
2015/07/23 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
Python可视化学习之seaborn调色盘
2022/02/24 Python
Win10 Anaconda安装python-pcl
2022/04/29 Servers
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android