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 相关文章推荐
js类的静态属性和实例属性的理解
Oct 01 Javascript
JS getMonth()日期函数的值域是0-11
Feb 15 Javascript
善用事件代理,警惕闭包的性能陷阱。
Jan 20 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
Mar 23 Javascript
javascript中sort() 方法使用详解
Aug 30 Javascript
js判断当前页面在移动设备还是在PC端中打开
Jan 06 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
Apr 12 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 Javascript
微信小程序开发之tabbar图标和颜色的实现
Oct 17 Javascript
微信小程序移动拖拽视图-movable-view实例详解
Aug 17 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 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
DSP接收机前端设想
2021/03/02 无线电
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
开发大型 PHP 项目的方法
2007/01/02 PHP
PHP Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
jQuery 入门讲解1
2009/04/15 Javascript
jquery实用代码片段集合
2010/08/12 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
Python删除空文件和空文件夹的方法
2015/07/14 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
全球在线商店:BerryLook
2019/04/14 全球购物
环保倡议书300字
2014/05/15 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
2015年小学开学寄语
2015/02/27 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
2015年学校管理工作总结
2015/07/20 职场文书
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技