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 相关文章推荐
关于javascript 回调函数中变量作用域的讨论
Sep 11 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
Jul 31 Javascript
通过Javascript创建一个选择文件的对话框代码
Jun 16 Javascript
JavaScript设计模式之单件模式介绍
Dec 28 Javascript
jQuery取消特定的click事件
Feb 29 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
May 20 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
Oct 26 Javascript
bootstrap响应式表格实例详解
May 15 Javascript
Vue.set()实现数据动态响应的方法
Feb 07 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
Oct 02 Javascript
微信小程序左右滚动公告栏效果代码实例
Sep 16 Javascript
js实现带搜索功能的下拉框
Jan 11 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
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
Python实现抓取网页并且解析的实例
2014/09/20 Python
python实现根据月份和日期得到星座的方法
2015/03/27 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
Joules美国官网:出色的英国风格
2017/10/30 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
马智宇结婚主持词
2014/04/01 职场文书
学雷锋月活动总结
2014/04/25 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
委托书格式范文
2015/01/28 职场文书
工程部岗位职责
2015/02/10 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书
施工安全责任协议书
2016/03/23 职场文书
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL
python脚本框架webpy模板赋值实现
2021/11/20 Python