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官方网站?  重庆市网站制作公司,重庆招聘网站哪个好?