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 Cookie 直接浏览网站分网址
Dec 08 Javascript
utf-8编码引起js输出中文乱码的解决办法
Jun 23 Javascript
ExtJs GridPanel简单的增删改实现代码
Aug 26 Javascript
js中获取事件对象的方法小结
Mar 13 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
js中不同的height, top的区别对比
Sep 24 Javascript
js面向对象的写法
Feb 19 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
Sep 23 Javascript
JS实现动态修改table及合并单元格的方法示例
Feb 20 Javascript
jquery实现手机端单店铺购物车结算删除功能
Feb 22 Javascript
jQuery.ajax向后台传递数组问题的解决方法
May 12 jQuery
在 HTML 页面中使用 React的场景分析
Jan 18 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
php分页函数
2006/07/08 PHP
PHP session常见问题集锦及解决办法总结
2007/03/18 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
php中memcache 基本操作实例
2015/05/17 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
使用Python的PIL模块来进行图片对比
2016/02/18 Python
python直接访问私有属性的简单方法
2016/07/25 Python
pandas数值计算与排序方法
2018/04/12 Python
详解Python中is和==的区别
2019/03/21 Python
解决yum对python依赖版本问题
2019/07/05 Python
Django 再谈一谈json序列化
2020/03/16 Python
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
银行会计业务的个人自我评价
2013/11/02 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS