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 操作select下拉列表框的一点小经验
Mar 20 Javascript
查看源码的工具 学习jQuery源码不错的工具
Dec 26 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
Dec 19 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
Feb 26 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
Jul 20 Javascript
JavaScript提高网站性能优化的建议(二)
Jul 24 Javascript
前端JS面试中常见的算法问题总结
Dec 23 Javascript
浅谈js的解析顺序 作用域 严格模式
Oct 23 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
JavaScript计算正方形面积
Nov 26 Javascript
关于引入vue.js 文件的知识点总结
Jan 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
phpMyadmin 用户权限中英对照
2010/04/02 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
前端微信支付js代码
2016/07/25 Javascript
JS常用知识点整理
2017/01/21 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
浅谈python写入大量文件的问题
2018/11/09 Python
Python 获取div标签中的文字实例
2018/12/20 Python
python 为什么说eval要慎用
2019/03/26 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
Pillow图像处理库安装及使用
2022/04/12 Python