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 相关文章推荐
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
jQuery 中的 DOM 操作
Apr 26 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
Jun 01 Javascript
AngularJS基础 ng-switch 指令简单示例
Aug 03 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
Oct 18 Javascript
浅析bootstrap原理及优缺点
Mar 19 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
Oct 29 Javascript
小程序组件之自定义顶部导航实例
Jun 12 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
Aug 26 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
javascript实现留言板功能
Feb 08 Javascript
jquery实现有过渡效果的tab切换
Jul 17 jQuery
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
开源SNS系统-ThinkSNS
2008/05/18 PHP
精通php的十大要点(上)
2009/02/04 PHP
基于php-fpm的配置详解
2013/06/03 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
javascript表单验证大全
2015/08/12 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
Javascript基础_标记文字的实现方法
2016/06/14 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
python 算法 排序实现快速排序
2012/06/05 Python
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
python matlibplot绘制3D图形
2018/07/02 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
基于Python解密仿射密码
2019/10/21 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
委托代理人授权委托书范本
2014/09/24 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
慰问信格式规范
2015/03/23 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python