angular 模板

文本插值

组件中的变量:{ {data}}
插值表达式:{ {1+1}} { {1+getVal()}} 新的模板表达式运算符,例如 |,?. 和 !

<img src="{
  {itemImageUrl}}">
<p>{
  {title}}</p>
<ul>
  <li *ngFor="let itemof list">{
  {item.name}}</li>
</ul>

//结果:Template <script>alert("evil never sleeps")</script> Syntax  浏览器不会处理HTML,而是原样显示它
<p>{
  {evilTitle}}</p>

public title:string = 'my-project';
public list:any[] = [{name:'jie'},{name:'lei}]
public evilTitle:string = 'Template <script>alert("evil never sleeps")</script> Syntax';

不能使用那些具有或可能引发副作用的 JavaScript 表达式,包括:

  • 赋值 (=, +=, -=, …)
  • 运算符,比如 new、typeof 或 instanceof 等。
  • 使用 ; 或 , 串联起来的表达式
  • 自增和自减运算符:++ 和 –
  • 一些 ES2015+ 版本的运算符
  • 不支持位运算,比如 | 和 &

属性绑定

Propety绑定

要绑定的属性将其括在方括号[]内,方括号 [] 使 Angular 将等号的右侧看作动态表达式进行求值。如果不使用方括号,等号右侧视为字符串字面量

  • 可用于绑定标签自带的属性
  • 绑定ngclass,改变class值
  • 绑定innerHtml,属性绑定会对<script>标记进行忽略处理,不显示script标记及包裹的内容
  • 在父子组件传值绑定值
<img [src]="itemImageUrl2">
<tr><td [colSpan]="1 + 1">Three-Four</td></tr>
 
 //报错,不能绑定td自身不存在的属性
<tr><td [aa]="1 + 1">Three-Four</td></tr>

<button [disabled]="isUnchanged">Disabled Button</button>
<p [ngClass]="classes">blue</p> //class="aa bb"
<p [ngClass]="classstr">red</p>//class='red'

//结果忽略script标签及内容:Template  Syntax  
<p [innerHtml]='evilTitle'></p>



public classes:string[] = ['aa','bb']
public classstr:string = 'red'
public evilTitle:string = 'Template <script>alert("evil never sleeps")</script> Syntax';
  

Attribute绑定

在Attribute名称前加上前缀attr.

  • 可设置自定义的属性
//结果:aa='2'
 <p [attr.aa]='1+1'>123</p>
 //结果:aria-label='1234'
 <button [attr.aria-label]="actionName"></button>
 

public actionName:string = '1234'

类绑定

绑定类型 语法 输入类型 范例输入值
单一类绑定 [class.sale]=“onSale” boolean | undefined | null
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值