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 相关文章推荐
学习YUI.Ext第五日--做拖放Darg&amp;Drop
Mar 10 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
Oct 21 Javascript
原生js实现半透明遮罩层效果具体代码
Jun 06 Javascript
30分钟快速掌握Bootstrap框架
May 24 Javascript
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
Node解决简单重复问题系列之Excel内容的获取
Jan 02 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
Feb 11 Javascript
vue.js前后端数据交互之提交数据操作详解
Apr 24 Javascript
Vue实现自定义下拉菜单功能
Jul 16 Javascript
了解前端理论:rscss和rsjs
May 23 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
Sep 25 Javascript
你不知道的 TypeScript 高级类型(小结)
Aug 28 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
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
php上传图片类及用法示例
2016/05/11 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
Django框架反向解析操作详解
2019/11/28 Python
Python实现括号匹配方法详解
2020/02/10 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
小学班主任寄语大全
2014/04/04 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
2014年大学生工作总结
2014/11/20 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android