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 相关文章推荐
Ajax提交与传统表单提交的区别说明
Feb 07 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
浅谈javascript构造函数与实例化对象
Jun 22 Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 Javascript
js微信分享实现代码
Oct 11 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 Javascript
JavaScript继承定义与用法实践分析
May 28 Javascript
layui导出所有数据的例子
Sep 10 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 Javascript
JS判断浏览器类型与操作系统的方法分析
Apr 30 Javascript
Javascript异步执行不按顺序解决方案
Apr 30 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
php define的第二个参数使用方法
2013/11/04 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
python实现websocket的客户端压力测试
2019/06/25 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
Python实现ATM系统
2020/02/17 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
幼儿园秋游活动方案
2014/01/21 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
Golang之sync.Pool使用详解
2021/05/06 Golang
公历12个月名称的由来
2022/04/12 杂记