Angular4学习教程之DOM属性绑定详解


Posted in Javascript onJanuary 04, 2018

前言

DOM 元素触发的一些事件通过 DOM 层级结构传播,事件首先由最内层的元素开始,然后传播到外部元素,直到它们到根元素,这种传播过程称为事件冒泡。本文主要介绍了关于Angular4 DOM属性绑定的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

简介

使用插值表达式将一个表达式的值显示在模版上

<img src="{{imgUrl}}" alt="">
<h1>{{productTitle}}</h1>

使用方括号将HTML标签的一个属性值绑定到一个表达式上

<img [src]="imgUrl" alt="">

使用小括号将组件控制器的一个方法绑定到模版上面的一个事件的处理器上

<button (click)="onClickButton($event)">按钮绑定事件</button>

注意

在开始下面的例子之前,请先确认已经新建了一个工程。如果没有,请查看:Angular2学习笔记之Angular CLI 安装和使用教程

事件绑定

Angular4学习教程之DOM属性绑定详解

准备工作

了解目的:在模版的界面上面增加一个按钮,然后通过小括号绑定一个事件。

新建一个 bind 组件,使用命令:  ng g c bind

修改 bind.component.html

<!-- 界面增加代码 -->
<button (click)="onClickButton($event)">按钮绑定事件</button>

修改 bind.component.ts

//在 BindComponent 类方法中增加方法体
onClickButton(event: any){
 console.log(event);
}

修改 app.component.html

<!-- 增加 app-bind 组件 -->
<app-bind></app-bind>

图示:

Angular4学习教程之DOM属性绑定详解

Dom属性绑定

例子一

插值表达式 与 属性绑定 之间的关系

两种方式都可以实现,angular 在实现的逻辑上面是: 在程序加载组件的时候,会先将 "插值表达式" 翻译为 "属性绑定"

修改 bind.component.html

<!-- 界面增加代码 -->
<!-- 属性绑定 -->
<img [src]="imgUrl" alt="">
<!-- 插值表达式绑定 -->
<img src="{{imgUrl}}" alt="">

修改 bind.component.ts

//增加变量
imgUrl: string = http://placehold.it/320x280;

图示:

Angular4学习教程之DOM属性绑定详解

例子二

dom 属性 与 html 属性的区别

HTML元素的 DOM属性和 HTML 属性是有部分区别的,这点需要明确差异。

修改 bind.component.html

<!-- 增加代码 -->
<div>
 <input type="text" value="Tom" (input)="onInputEvent($event)">
</div>

修改 bind.component.ts

//增加 event事件
onInputEvent(event: any){
 //获取的是 dom 属性,即输入属性
 console.log(event.target.value);
 //获取的是 html 属性,也就是初始化的属性
 console.log(event.target.getAttribute("value"));
}

图示:

Angular4学习教程之DOM属性绑定详解

小结:

      1.少量的 HTML属性和 DOM属性之间有这 1 :1 的映射关系,如 :id

      2.有些有 HTML属性,没有DOM 属性, 如:colspan

      3.有些有 DOM属性,没有HTML 属性,如:textContent

      4.就算名字一样,DOM属性和HTML属性获取的内容可能不一样

      5.模版绑定是通过DOM属性绑定的,而不是通过HTML属性

      6.HTML属性指定了初始值,DOM属性表示当前值;DOM属性的值可以改变,HTML的值不能改变

例子部分完整代码

bind.component.html

<p>
 bind works!
</p>
<button (click)="onClickButton($event)">按钮绑定事件</button>
<div>
 <!-- 属性绑定 -->
 <img [src]="imgUrl" alt="">

 <!-- 插值表达式绑定 -->
 <img src="{{imgUrl}}" alt="">
</div>
<div>
 <input type="text" value="Tom" (input)="onInputEvent($event)">
</div>

bind.component.ts

import { Component, OnInit } from '@angular/core';
@Component({
 selector: 'app-bind',
 templateUrl: './bind.component.html',
 styleUrls: ['./bind.component.css']
})
export class BindComponent implements OnInit {
 imgUrl: string = "http://placehold.it/320x280";
 constructor() { }
 ngOnInit() {
 }
 onClickButton(event: any){
 console.log(event);
 }
 onInputEvent(event: any){
 //获取的是 dom 属性,即输入属性
 console.log(event.target.value);

 //获取的是 html 属性,也就是初始化的属性
 console.log(event.target.getAttribute("value"));
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jquery.validate使用攻略 第五步 正则验证
Jul 01 Javascript
Jquery倒数计时按钮setTimeout的实例代码
Jul 04 Javascript
Jquery easyUI 更新行示例
Mar 06 Javascript
jQuery中get()方法用法实例
Dec 27 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 Javascript
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 Javascript
vue购物车插件编写代码
Nov 27 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
Vue核心概念Action的总结
Jan 18 Javascript
解决layer弹出层msg的文字不显示的问题
Sep 11 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
Vue实现下拉加载更多
May 09 Vue.js
JS实现简易换图时钟功能分析
Jan 04 #Javascript
Angular4学习之Angular CLI的安装与使用教程
Jan 04 #Javascript
利用Vue2.x开发实现JSON树的方法
Jan 04 #Javascript
vue-cli配置文件——config篇
Jan 04 #Javascript
jQuery封装animate.css的实例
Jan 04 #jQuery
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 #Javascript
浅谈vuex 闲置状态重置方案
Jan 04 #Javascript
You might like
php中计算时间差的几种方法
2009/12/31 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
php网站地图生成类示例
2014/01/13 PHP
php导出CSV抽象类实例
2014/09/24 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
老生常谈JQuery data方法的使用
2016/09/09 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python简明入门教程
2015/08/04 Python
python实现识别相似图片小结
2016/02/22 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
python 字段拆分详解
2019/12/17 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
小学生检讨书大全
2014/02/06 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
搞笑婚前保证书
2015/02/28 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书