一文浅析angular中的组件模板

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

一文浅析angular中的组件模板

本篇文章带大家了解一下angular中的组件模板,简单介绍一下相关知识点:数据绑定、属性绑定、事件绑定、双向数据绑定、内容投影等等,希望对大家有所帮助!

Angular 是一个使用 HTMLCSSTypeScript 构建客户端应用的框架,用来构建单页应用程序。【相关教程推荐:《angular教程》】

Angular 是一个重量级的框架,内部集成了大量开箱即用的功能模块。

Angular 为大型应用开发而设计,提供了干净且松耦合的代码组织方式,使应用程序整洁更易于维护。

angualr文档:

Angular:https://angular.io/

Angular 中文:https://angular.cn/

Angular CLI:https://cli.angular.io/

Angular CLI 中文:https://angular.cn/cli组件模板

1、数据绑定

数据绑定就是将组件类中的数据显示在组件模板中,当组件类中的数据发生变化时会自动被同步到组件模板中(数据驱动 DOM )。

在 Angular 中使用插值表达式进行数据绑定,即 {{ }}

<h2>{{message}}</h2><h2>{{getInfo()}}</h2><h2>{{a == b ? '相等': '不等'}}</h2><h2>{{'Hello Angular'}}</h2><p [innerHTML]="htmlSnippet"></p> <!-- 对数据中的代码进行转义 -->
登录后复制

2、属性绑定

2.1 普通属性

属性绑定分为两种情况,绑定 DOM 对象属性绑定HTML标记属性

使用 [属性名称] 为元素绑定 DOM 对象属性。

<img [src]="imgUrl"/>
登录后复制

使用 [attr.属性名称] 为元素绑定 HTML 标记属性

<td [attr.colspan]="colSpan"></td>
登录后复制

在大多数情况下,DOM 对象属性和 HTML 标记属性是对应的关系,所以使用第一种情况。

但是某些属性只有 HTML 标记存在,DOM 对象中不存在,此时需要使用第二种情况,比如 colspan 属性,在 DOM 对象中就没有。

或者自定义 HTML 属性也需要使用第二种情况。

2.2 class 属性

<button class="btn btn-primary" [class.active]="isActive">按钮</button><div [ngClass]="{'active': true, 'error': true}"></div>
登录后复制

2.3 style 属性

<button [style.backgroundColor]="isActive ? 'blue': 'red'">按钮</button><button [ngStyle]="{'backgroundColor': 'red'}">按钮</button>
登录后复制

3、事件绑定

<button (click)="onSave($event)">按钮</button><!-- 当按下回车键抬起的时候执行函数 --><input type="text" (keyup.enter)="onKeyUp()"/>
登录后复制
export class AppComponent {  title = "test"  onSave(event: Event) {    // this 指向组件类的实例对象    this.title // "test"  }}
登录后复制

4、获取原生 DOM 对象

4.1 在组件模板中获取

<input type="text" (keyup.enter)="onKeyUp(username.value)" #username/>
登录后复制

4.2 在组件类中获取

使用 ViewChild 装饰器获取一个元素

<p #paragraph>home works!</p>
登录后复制
import { AfterViewInit, ElementRef, ViewChild } from "@angular/core"export class HomeComponent implements AfterViewInit {  @ViewChild("paragraph") paragraph: ElementRef<HTMLParagraphElement> | undefined  ngAfterViewInit() {    console.log(this.paragraph?.nativeElement)  }}
登录后复制

使用 ViewChildren 获取一组元素

<img [src]="imgUrl"/>0
登录后复制
<img [src]="imgUrl"/>1
登录后复制

5、双向数据绑定

数据在组件类和组件模板中双向同步。

Angular 将双向数据绑定功能放在了 @angular/forms 模块中,所以要实现双向数据绑定需要依赖该模块。

<img [src]="imgUrl"/>2
登录后复制
<img [src]="imgUrl"/>3
登录后复制
<img [src]="imgUrl"/>4
登录后复制

6、内容投影

<img [src]="imgUrl"/>5
登录后复制
<img [src]="imgUrl"/>6
登录后复制

如果只有一个ng-content,不需要select属性。

ng-content在浏览器中会被 <div class="heading test"></div> 替代,如果不想要这个额外的div,可以使用ng-container替代这个div。

ng-content 通常在投影中使用:当父组件需要向子组件投影数据时必须指定将数据投影到子组件的哪个位置,这时候就可以利用ng-content标签来做一个占位符,不会产生真实的dom元素,只会把投影的内容copy过来。ng-container是一个特殊的容器标签,不会产生真实的dom元素,所以在ng-container标签添加属性是无效的。
<img [src]="imgUrl"/>7
登录后复制

7、数据绑定容错处理

<img [src]="imgUrl"/>8
登录后复制
<img [src]="imgUrl"/>9
登录后复制

8、全局样式

<td [attr.colspan]="colSpan"></td>0
登录后复制
<td [attr.colspan]="colSpan"></td>1
登录后复制
<td [attr.colspan]="colSpan"></td>2
登录后复制

更多编程相关知识,请访问:编程视频!!

以上就是一文浅析angular中的组件模板的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。

作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:html5 canvas如何实现图片切换(代码)
下一篇:Vue文档中的分页面跳转函数实例分析

发表评论

关闭广告
关闭广告