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 相关文章推荐
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
May 07 Javascript
基于jQuery的弹出框插件
Mar 18 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
Jan 08 Javascript
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
Jul 18 Javascript
JavaScript中的return语句简单介绍
Dec 07 Javascript
深入理解Javascript中的自执行匿名函数
Jun 03 Javascript
jQuery实现Select左右复制移动内容
Aug 05 Javascript
php register_shutdown_function函数详解
Jul 23 Javascript
前端插件之Bootstrap Dual Listbox使用教程
Jul 23 Javascript
vue用BMap百度地图实现即时搜索功能
Sep 26 Javascript
js实现秒表计时器
Dec 16 Javascript
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+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
让Python更加充分的使用Sqlite3
2017/12/11 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python实现串口通信的示例代码
2020/02/10 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
本科毕业自我鉴定
2014/03/20 职场文书
大学生新学期计划书
2014/04/28 职场文书
班组建设经验交流材料
2014/05/12 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python