前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >angular 模板常用语法

angular 模板常用语法

作者头像
路过君
发布2020-06-19 16:45:27
1K0
发布2020-06-19 16:45:27
举报
文章被收录于专栏:路过君BLOG from CSDN

1. 结构指令

1.1 条件

代码语言:javascript
复制
extport class AppComponent {
	flag = true;
}
代码语言:javascript
复制
<p *ngIf="flag">xxxx</p>
<p *ngIf="flag else temp1">xxxx</p>
<ng-template #temp1><p>yyyy</p></ng-template>

1.2. 循环

代码语言:javascript
复制
extport class AppComponent {
	list = ["item1","item2","item3"];
}
代码语言:javascript
复制
<ul>
	<li *ngFor="let item of list;let i=index">
		{{i}} {{item}}
	</li>
</ul>

2. 数据绑定

  • 文本绑定(插值绑定)
代码语言:javascript
复制
<p>{{msg}}</p>
  • HTML绑定(用于插入HTML)
代码语言:javascript
复制
<p [innerHTML]="msg"></p>
  • 对象属性绑定(DOM Property)
代码语言:javascript
复制
<img [src]="url">
<img bind-src="url">
<img src="{{url}}">
  • HTML属性绑定(HTML Attribute)

错误写法:

代码语言:javascript
复制
<tr><td colspan="{{ 1 + 1 }}">xxx</td></tr>

报错:Can’t bind to ‘colspan’ since it isn’t a known property of ‘td’. 原因:clspan是HTML属性而不是DOM属性 正确写法:

代码语言:javascript
复制
<tr><td [attr.colspan]="1 + 1">xxx</td></tr>

2.1. 事件绑定

代码语言:javascript
复制
extport class AppComponent {
	showMsg(event) {
	}
}
代码语言:javascript
复制
<button (click)="flag=!flag">b1</button>
<button on-click="flag=!flag">b1</button>
<button (click)="msg=$event.target.innerHtml">b2</button>
<button (click)="handler($event)">b3</button>

2.2. 样式绑定

代码语言:javascript
复制
extport class AppComponent {
	cls = 'red';
  	redStyle = { color: 'red' };
}

2.2.1 样式类绑定

代码语言:javascript
复制
.red {
  color: red
}
.large {
  font-size: 30px;
}
  • 直接绑定类名
代码语言:javascript
复制
<p [class]="red">red</p>
  • 根据表达式布尔值绑定指定类
代码语言:javascript
复制
<p [class.red]="flag">red</p>
  • 根据表达式动态绑定类
代码语言:javascript
复制
<p [ngClass]="{'red':flag, 'large':largeSize}">red</p>

2.2.2 样式值绑定

代码语言:javascript
复制
<p [style.color]="flag?'red':'blue'">red</p>
<p [ngStyle]="redStyle">red</p>

2.3. 双向绑定

  • 手动
代码语言:javascript
复制
<input type="text" [value]="msg" (input)="msg=$event.target.value">
  • 自动
  1. 使用表单模块,导入import {FormsModule} from ‘@angular/forms’;
代码语言:javascript
复制
<p><input type="text" [(ngModel)]="msg" /></p>
  1. 自定义组件属性
  • 修改属性的同时触发属性修改事件
代码语言:javascript
复制
<p><input type="text" [value]="msg" (input)="msg=$event.target.value;this.msgChange.emit(msg);" /></p>
  • 按x,xChange的规范定义属性及事件
代码语言:javascript
复制
  @Input() msg = 'msg';
  @Output() msgChange = new EventEmitter<string>();
  • 通过[()]实现双向绑定
代码语言:javascript
复制
<myComponent [(msg)]="myComponentMsg"></myComponent>

3. 标签引用

代码语言:javascript
复制
<input type="text" #field1 />
<input type="text" ref-field2 />
<button (click)="field2.value=field1.value">save</button>

4. 管道

日期格式转换

代码语言:javascript
复制
<p>{{d|data:'yyyy-MM-dd'}}</p>

对象转换json

代码语言:javascript
复制
<p>{{obj|json}}</p>

数字格式转换’最小整数位数(自动补零).最小小数位数(自动补零)-最大小数位数’

代码语言:javascript
复制
<p>{{3.141592653|number:'3.3-10'}}</p>

截取(字符串/数组)

代码语言:javascript
复制
<ul>
	<li *ngFor="let i of collection | slice:1:3">{{i}}</li>
</ul>
<p>{{str | slice:0:4}}</p>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 结构指令
    • 1.1 条件
      • 1.2. 循环
      • 2. 数据绑定
        • 2.1. 事件绑定
          • 2.2. 样式绑定
            • 2.2.1 样式类绑定
            • 2.2.2 样式值绑定
          • 2.3. 双向绑定
          • 3. 标签引用
          • 4. 管道
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档