Angular4总结(四)—— 数据绑定,响应式,管道

简介: 数据绑定angular4中默认的数据绑定都是单向的。可分为:插值表达式形式(Dom属性绑定)<p>{{test}}<p>Dom 属性绑定流程:控制器中定义了一个属性,值发生了改变对应的dom的value被附上改变了的值渲染后的页面上也会出现刚刚的值这一切操作都和html属性不发生任何关系html属性绑定,使用中括号<img [src]="imgUrl"/>//如果没有写这个方括号,angular会把属性右侧的值作为字符串进行赋值,而非表达式基本Html属性绑定CSS属性绑定这种形式是全有或者全无的。

数据绑定

angular4中默认的数据绑定都是单向的。可分为:

插值表达式形式(Dom属性绑定)

<p>{{test}}<p>

Dom 属性绑定流程:

  1. 控制器中定义了一个属性,值发生了改变
  2. 对应的dom的value被附上改变了的值
  3. 渲染后的页面上也会出现刚刚的值
  4. 这一切操作都和html属性不发生任何关系

html属性绑定,使用中括号

<img [src]="imgUrl"/>
//如果没有写这个方括号,angular会把属性右侧的值作为字符串进行赋值,而非表达式
  • 基本Html属性绑定

  • CSS属性绑定

    • 这种形式是全有或者全无的。
    •   < div [class] = "classA classB classC">  </div>
    • A,B样式固定,C随着boolean的true或者false决定是否显示
    •   < div class="classA classB" [class.classC]="一个boolean值"> </div> 
    • 多个属性由不同的boolean控制

      <div [ngClass]="divClass"></div>
      
      <!--divClass 为一个json对象,在控制层可以写为如下:-->
      divClass:{
          classA: true,
          classB: false,
          classC: true
      }
  • 样式绑定

    • style样式全有全无指定

      <div [style.color]="一个boolean值"> </div>
    • 多个属性由不同boolean控制

      <div [ngStyle]="divStyle"></div>
      
      <!--divClass 为一个json对象,在控制层可以写为如下:-->
      divStyle:{
          color: red,
          color-size: 3px
      }

Tips: Dom属性与Html属性的区别

Dom 属性是随着值的变化,会发生改变。而Html属性是在起始的时候你指定的值,以后你拿到的也就一致是这个值。

模版绑定是通过Dom绑定做的,而不是html属性绑定

事件绑定使用小括号

<button (click)="clickEvent($event)">

双向绑定

双向绑定本身其实就是属性绑定和事件绑定的结合,属性绑定是从控制到视图层,而事件绑定是从视图层到控制层

< input [(ngModel)] = "test"> 
<!--test 为控制器的一个参数名称-->

定义element别名

使用#定义别名,在使用的时候不需要加#

< input #testInput (input)=inputEvent(testInput.value)>

响应式编程

在Angular中主要使用rxjs来实现响应式编程。

响应式编程主要其实就是观察者模式的一种延伸,角色可以分为:

  • 可观察对象(Obserable) 表示一组值或者事件的集合
  • 观察者 (Observer)一个回掉函数集合,他知道怎么去监听被Obserable发送的值

万物皆可流处理

管道

管道是将原始值转换为期望格式的一种方法,用 "|" 符号进行分割,主要用于插值表达式。

管道可以像是链式一样,多个管道进行连接

管道常用的可以分为:

  • date 可接受参数,例如 date:'yyyy-MM-dd HH:mm:ss'
  • number 可接受参数,例如:number:'2.2-2'
  • uppercase
  • lowercase
  • async 可处理异步流

管道也可以自己定义,在需要使用的地方,只需要加在declations中即可。

目录
相关文章
|
2月前
|
缓存 前端开发 JavaScript
前端serverless探索之组件单独部署时,利用rxjs实现业务状态与vue-react-angular等框架的响应式状态映射
本文深入探讨了如何将RxJS与Vue、React、Angular三大前端框架进行集成,通过抽象出辅助方法`useRx`和`pushPipe`,实现跨框架的状态管理。具体介绍了各框架的响应式机制,展示了如何将RxJS的Observable对象转化为框架的响应式数据,并通过示例代码演示了使用方法。此外,还讨论了全局状态源与WebComponent的部署优化,以及一些实践中的改进点。这些方法不仅简化了异步编程,还提升了代码的可读性和可维护性。
|
4月前
|
开发者 Java Spring
JSF 牵手社交登录,如魔法风暴席卷 Web 世界,开启震撼便捷登录之旅!
【8月更文挑战第31天】在互联网时代,便捷登录成为用户的核心需求。社交登录凭借其便捷性、安全性和社交化的特点,在各类Web应用中广泛应用。JavaServer Faces(JSF),作为一款流行的Java Web框架,能够轻松集成社交登录功能,显著提升用户体验。本文详细介绍社交登录的优势,并提供两种JSF集成社交登录的常见方法:一是利用Spring Social等第三方库简化开发;二是自行实现社交登录流程。开发者可根据项目需求选择适合的方案。
50 0
|
4月前
|
开发者 容器 Docker
JSF与Docker,引领容器化浪潮!让你的Web应用如虎添翼,轻松应对高并发!
【8月更文挑战第31天】在现代Web应用开发中,JSF框架因其实用性和灵活性被广泛应用。随着云计算及微服务架构的兴起,容器化技术变得日益重要,Docker作为该领域的佼佼者,为JSF应用提供了便捷的部署和管理方案。本文通过基础概念讲解及示例代码展示了如何利用Docker容器化JSF应用,帮助开发者实现高效、便携的应用部署。同时也提醒开发者注意JSF与Docker结合使用时可能遇到的限制,并根据实际情况做出合理选择。
47 0
|
4月前
|
前端开发 UED 开发者
深度剖析Angular表单控件:从模板驱动到响应式表单的最佳实践,带你全面掌握Angular表单处理机制,提升前端开发效率与用户体验的终极指南
【8月更文挑战第31天】本文通过代码示例详细介绍了 Angular 中两种主要的表单处理方式:模板驱动表单和响应式表单。模板驱动表单适用于简单场景,可在 HTML 模板中直接定义表单控件并实现数据绑定和验证。响应式表单基于 RxJS,提供更灵活的表单管理和复杂的逻辑处理。通过具体示例展示了每种方式的最佳实践,帮助开发者简化表单处理,提高开发效率和用户体验。
40 0
|
4月前
|
数据采集 前端开发 开发者
Angular表单控件详解:掌握模板驱动与响应式表单的精髓,让Web应用中的数据采集工作变得高效又简单,彻底告别繁琐的表单处理流程
【8月更文挑战第31天】表单是 Web 应用的关键组件,用于用户登录、注册及信息提交。Angular 作为成熟前端框架,提供了强大的表单处理功能,包括模板驱动与响应式表单。本文通过技术博客形式,详细介绍这两种表单控件,并提供示例代码,展示如何利用它们简化表单处理流程,提高开发效率。首先介绍简单的模板驱动表单,然后讲解基于 RxJS 的响应式表单,适用于复杂逻辑。通过本文,你将学会如何高效地使用 Angular 表单控件,提升应用的用户体验。
50 0
|
4月前
Angular 中的响应式表单:监听变化
Angular 中的响应式表单:监听变化
52 0
|
4月前
|
JavaScript 前端开发
如何在 Angular 中使用响应式表单
如何在 Angular 中使用响应式表单
26 0
|
4月前
|
JavaScript 前端开发
如何在 Angular 中为响应式表单创建自定义验证器
如何在 Angular 中为响应式表单创建自定义验证器
38 0
|
4月前
在Angular中创建自定义管道
在Angular中创建自定义管道
21 0
|
7月前
|
Perl
【不明觉厉】Angular的 pure pipe (纯管道) 和 impure pipe (非纯管道) 是啥意思?
【不明觉厉】Angular的 pure pipe (纯管道) 和 impure pipe (非纯管道) 是啥意思?
【不明觉厉】Angular的 pure pipe (纯管道) 和 impure pipe (非纯管道) 是啥意思?