Angular2学习笔记之数据绑定的示例代码


Posted in Javascript onJanuary 03, 2018

简介

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

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

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

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

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

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

注意

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

事件绑定

Angular2学习笔记之数据绑定的示例代码

准备工作

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

新建一个 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>

图示:

Angular2学习笔记之数据绑定的示例代码

Dom属性绑定

例子一

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

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

修改 bind.component.html

<!-- 界面增加代码 -->

<!-- 属性绑定 -->
<img [src]="imgUrl" alt="">

<!-- 插值表达式绑定 -->
<img src="{{imgUrl}}" alt="">

修改 bind.component.ts

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

图示:

Angular2学习笔记之数据绑定的示例代码

例子二

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"));

}

图示:

Angular2学习笔记之数据绑定的示例代码

总结:

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 相关文章推荐
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
Jan 16 Javascript
浅析hasOwnProperty方法的应用
Nov 20 Javascript
Firefox下无法正常显示年份的解决方法
Sep 04 Javascript
原生JS和JQuery动态添加、删除表格行的方法
May 28 Javascript
JavaScript定时器和优化的取消定时器方法
Jul 03 Javascript
js实现继承的5种方式
Dec 01 Javascript
ES6中module模块化开发实例浅析
Apr 06 Javascript
JS获取指定月份的天数两种实现方法
Jun 22 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
Sep 16 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
谈谈JavaScript中的函数
Sep 08 Javascript
JavaScript的Set数据结构详解
Feb 18 Javascript
vue、react等单页面项目应该这样子部署到服务器
Jan 03 #Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 #Javascript
浅谈node模块与npm包管理工具
Jan 03 #Javascript
JavaScript基于面向对象实现的猜拳游戏
Jan 03 #Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
Jan 03 #Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 #Javascript
vue项目中用cdn优化的方法
Jan 03 #Javascript
You might like
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
会计专业自荐信范文
2013/12/02 职场文书
医大实习自我鉴定
2013/12/07 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
党课心得体会范文
2014/09/09 职场文书
出纳工作检讨书
2014/10/18 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
关于开学的感想
2015/08/10 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
初一英语教学反思
2016/02/15 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
【2·13】一图读懂中国无线电发展
2022/02/18 无线电