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拖动技术 关于setCapture使用
Dec 09 Javascript
判断用户的在线状态 onbeforeunload事件
Mar 05 Javascript
JS高级笔记
Jul 13 Javascript
input输入框的自动匹配(原生代码)
Mar 19 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
Mar 02 Javascript
JavaScript电子时钟倒计时
Jan 09 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
Jun 03 Javascript
AngularJS入门之动画
Jul 27 Javascript
AngularJS中的拦截器实例详解
Apr 07 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
Vue中computed及watch区别实例解析
Aug 01 Javascript
微信小程序实现日历小功能
Nov 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&amp;MYSQL分页原理及实现
2007/01/02 PHP
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
原生js实现自定义消息提示框
2020/11/19 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
python字典DICT类型合并详解
2017/08/17 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
高校自主招生自荐信
2013/12/09 职场文书
军训生自我鉴定范文
2013/12/27 职场文书
应届毕业生求职信
2014/05/26 职场文书
公司演讲稿开场白
2014/08/25 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
作风建设整改方案
2014/10/27 职场文书
2015年公司新年寄语
2014/12/08 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
实验心得体会范文
2016/01/25 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL