Angular2数据绑定详解
发布时间 - 2026-01-11 00:42:14 点击率:次大致介绍

Angular2中数据绑定的方式默认是以单向方式,数据绑定的方式可以分为:
1、属性绑定和插值表达式 组件类-> 模板
2、事件绑定:模板 -> 组件类
3、双向绑定: 模板 <-> 组件类
事件绑定
事件绑定是把模板中的事件绑定到组件类中的方法上,例如在一个组件中的HTML代码是:
<p> <a (click)="doClick($event)">点我</a> </p>
(click)表示要进行的操作,当用户点击时就会执行组件类中的doClick方法
export class BindComponent implements OnInit {
constructor() { }
ngOnInit() {
}
doClick(event: any){
console.log(event.target.innertext);
}
}
属性绑定和插值表达式
其实属性绑定和插值表达式是同一个东西,因为在解析代码时,插值表达式会转换为属性绑定,所以你想用哪个就用哪个
下面的代码作用都是一样的
<!-- 插值表达式 -->
<img src="{{imgUrl}}" />
<!-- 属性绑定 -->
<img [src]="imgUrl" />
属性绑定又分为HTML属性绑定和DOM属性绑定,他们之间的区别是什么?先来看一个例子
<input type="text" value="hello" (input)="doInput($event)" />
doInput(event: any){
console.log(event.target.value);
console.log(event.target.getAttribute('value'));
}
浏览器的显示:
可以看到event.target.value是获取的DOM属性,是可变的。表示当前元素的状态
而event.target.getAttribute("value")获取的是HTML属性,是不可变的。只负责初始化HTML元素,不可改变
注意:
1、有些DOM属性没有映射的HTML属性,同样有些HTML属性也没有映射的DOM属性
2、模板绑定的是DOM属性
HTML属性绑定
1、基本HTML属性绑定
<td [attr.colspan]="表达式"></td>
2、css绑定
<div class="a" [class]="b"></div> //b会完全替代a
<div [class.a]="fn()"></div> //fn()返回true,false,如果true添加.a
<div [ngClass]="{a:isA,b:isB}"></div> //b会完全替代a
3、样式绑定
<button [style.color]="a?red:green">button</button>
<button [ngStyle]="{'font-style':a?'red':'green'}">button</button>
双向绑定
双向绑定可以从组件类 -> 模板,也可以从模板 -> 组件类
例子:
<input type="text" [(ngModel)]="name" (input)="doInput()" />
private name: string = 'asdf';
doInput(){
setInterval(() => {
this.name = 'sdf';
},3000);
}
利用[(ngModel)]可以实现双向数据绑定,首先在输入框中修改name,从而改变组件类中name的值,是模板组 -> 件类,修改值之后三秒,又重新设置name的值,是组件类 -> 模板
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# angular2
# 数据绑定
# 解决angular2 获取到的数据无法实时更新的问题
# Angular2监听页面大小变化的解决方法
# AngularJS实现一次监听多个值发生的变化
# Angular2中监听数据更新的方法
# 绑定
# 插值
# 的是
# 类中
# 可以看到
# 时就
# 可以实现
# 就用
# 转换为
# 想用
# 他们之间
# 框中
# 可以分为
# 是一样的
# target
# innertext
# log
# ngOnInit
# console
# src
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
在线教育网站制作平台,山西立德教育官网?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
奇安信“盘古石”团队突破 iOS 26.1 提权
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
如何用AI帮你把自己的生活经历写成一个有趣的故事?
使用豆包 AI 辅助进行简单网页 HTML 结构设计
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
如何用虚拟主机快速搭建网站?详细步骤解析
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
如何在万网ECS上快速搭建专属网站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Laravel如何实现数据库事务?(DB Facade示例)
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
如何打造高效商业网站?建站目的决定转化率
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何在云主机上快速搭建多站点网站?
Python文本处理实践_日志清洗解析【指导】
大同网页,大同瑞慈医院官网?
Linux网络带宽限制_tc配置实践解析【教程】
如何在阿里云完成域名注册与建站?
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
jQuery validate插件功能与用法详解
利用 Google AI 进行 YouTube 视频 SEO 描述优化
javascript基本数据类型及类型检测常用方法小结
Laravel如何使用.env文件管理环境变量?(最佳实践)
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何用搬瓦工VPS快速搭建个人网站?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Python文件异常处理策略_健壮性说明【指导】
详解jQuery停止动画——stop()方法的使用
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Android中AutoCompleteTextView自动提示
Android利用动画实现背景逐渐变暗
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
C#如何调用原生C++ COM对象详解
IOS倒计时设置UIButton标题title的抖动问题
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
太平洋网站制作公司,网络用语太平洋是什么意思?
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
深圳网站制作的公司有哪些,dido官方网站?
重庆市网站制作公司,重庆招聘网站哪个好?

