angular6.x--指令与数据绑定

2020-05-17  本文已影响0人  Sun____

>数据文本绑定 {{}}

 <h1>
      {{title}}
  </h1>

>绑定属性绑定 html

this.h="<h2>这是一个h2用[innerHTML]来解析</h2>"

<div [innerHTML]="h"></div>

<div [id]="id" [title]="msg">调试工具看看我的属性</div>
image.png

>*ngFor 普通循环

 <ul>
    <li *ngFor="let item of list">
      {{item}}
    </li>
  </ul>


<ul>
    <li *ngFor="let item of list2; let i = index">
       {{i}}----- {{item.title}}
    </li>
</ul>
// trackBy 唯一标志符
trackByHeroes(index: number, hero: Hero): number { return hero.id; }
<div *ngFor="let hero of heroes; trackBy: trackByHeroes"> ({{hero.id}}) {{hero.name}} </div>

你可能试过把 *ngFor 和 *ngIf 放在同一个宿主元素上,但 Angular 不允许。这是因为你在一个元素上只能放一个结构型指令。 这种情况下有一个简单的解决方案:把 *ngIf 放在一个"容器"元素上,再包装进 *ngFor 元素。 这个元素可以使用ng-container,以免引入一个新的 HTML 层级。

局部变量:
index: number:可迭代对象中当前条目的索引。
first: boolean:如果当前条目是可迭代对象中的第一个条目则为 true。
last: boolean:如果当前条目是可迭代对象中的最后一个条目则为 true。
even: boolean:如果当前条目在可迭代对象中的索引号为偶数则为 true。
odd: boolean:如果当前条目在可迭代对象中的索引号为奇数则为 true。

>条件判断 *ngIf

  <p *ngIf="list.length > 3">这是ngIF判断是否显示</p>

>执行事件(click)

<button class="button" (click)="getData()">

      点击按钮触发事件

  </button>

  getData(){ /*自定义方法获取数据*/

    //获取

    alert(this.msg);

  }

>双向数据绑定 [(ngModel)]

<input  [(ngModel)]="inputValue">

注意引入:FormsModule

import{ FormsModule} from '@angular/forms';

@NgModule({

  declarations: [

    AppComponent,

    HeaderComponent,

    FooterComponent,

    NewsComponent

  ],

  imports: [

    BrowserModule,

    FormsModule

  ],

  providers: [],

  bootstrap: [AppComponent]

})

export class AppModule { }

使用:

  <input type="text"  [(ngModel)]="inputValue"/>

  {{inputValue}}

>style绑定样式

[style.color]="colorArr[0]"

[ngStyle]="{'color':isRed?'red':'green'}"

>class绑定类名

[ngClass]="{'special': isSpecial,heighLight: isHeighLight}"

[class.special]="isSpecial"

<span [ngClass]= " currentClasses (click)= change ()" >测试文本</ span >

public currentClasses  = { 'widthC': true , 'heightC': false , 'colorC': this.isRed};

change() {
  this.isRed = !this.isRed;
  this.currentClasses.colorC:this.isRed;//ngStyle也适用
}

>NgSwitch指令

<div [[ngSwitch](https://angular.cn/api/common/NgSwitch)]="currentHero.emotion"> 

<span  *[ngSwitchCase](https://angular.cn/api/common/NgSwitchCase)="'happy'" [hero]="currentHero"></span >

<span  *[ngSwitchCase](https://angular.cn/api/common/NgSwitchCase)="'sad'" [hero]="currentHero"></span > 

<span *[ngSwitchCase](https://angular.cn/api/common/NgSwitchCase)="'confused'" [hero]="currentHero"></span>

  <span  *[ngSwitchDefault](https://angular.cn/api/common/NgSwitchDefault) [hero]="currentHero"></span > 

</div>

>模板引用变量 ( #var)

使用井号 (#) 来声明引用变量。 我们也可以用ref-前缀代替#。

<input #phone placeholder="phone number">
<button (click)="callPhone(phone.value)">Call</button>

<!--phone.value就是input的value值**ref-**phone -->

大多数情况下,Angular会把模板引用变量的值设置为声明它的那个元素。 不过,指令也可以修改这种行为,让这个值引用到别处,比如它自身。NgForm指令就是这么做的。

<form (ngSubmit)="onSubmit(heroForm)" #heroForm="ngForm"> </form>

>hidden 显示隐藏

<div [hidden]="name.valid || name.pristine"
     class="alert alert-danger">
  Name is required
</div>
上一篇下一篇

猜你喜欢

热点阅读