Rumah > hujung hadapan web > tutorial js > Analisis mendalam arahan, paip dan perkhidmatan dalam Angular

Analisis mendalam arahan, paip dan perkhidmatan dalam Angular

青灯夜游
Lepaskan: 2021-09-18 10:58:13
ke hadapan
2189 orang telah melayarinya

Apakah arahan, paip dan perkhidmatan dalam Angular? Artikel berikut akan membawa anda melalui arahan, saluran paip dan perkhidmatan dalam Angular Saya harap ia akan membantu anda!

Analisis mendalam arahan, paip dan perkhidmatan dalam Angular

1. Perintah Directive

arahan ialah cara yang disediakan oleh Angular untuk mengendalikan DOM. Arahan dibahagikan kepada arahan atribut dan arahan struktur. [Tutorial berkaitan yang disyorkan: "tutorial sudut"]

arahan atribut: Ubah suai rupa atau gelagat elemen sedia ada dan gunakan pakej [].

Perintah struktur: tambah dan padam DOM nod untuk mengubah suai reka letak, gunakan * sebagai awalan arahan

1.1 Perintah terbina dalam

1.1.1 *ngIf

Render DOM nod atau alih keluar DOM nod berdasarkan syarat

<div *ngIf="data.length == 0">没有更多数据</div>
Salin selepas log masuk
<div *ngIf="data.length > 0; then dataList else noData"></div>
<ng-template #dataList>课程列表</ng-template>
<ng-template #noData>没有更多数据</ng-template>
Salin selepas log masuk

1.1.2 [hidden]

Tunjukkan DOM nod atau sembunyikan DOM nod (display) mengikut syarat

<div [hidden]="data.length === 0">没有更多数据</div>
Salin selepas log masuk

1.1 .3 *ngFor

Melintasi data untuk menjana struktur HTML

interface List {
  id: number
  name: string
  age: number
}

list: List[] = [
  { id: 1, name: "张三", age: 20 },
  { id: 2, name: "李四", age: 30 }
]
Salin selepas log masuk
<!--  
    i: 索引
    isEven: 是否为偶数行
    isOdd: 是否为奇数行
    isFirst: 是否是第一项
    isLast: 是否是最后一项
-->
<li
    *ngFor="
      let item of list; 
      let i = index;
      let isEven = even;
      let isOdd = odd;
      let isFirst = first;
      let isLast = last;
    "
></li>
Salin selepas log masuk
<li *ngFor="let item of list; trackBy: identify"></li>
Salin selepas log masuk
identify(index, item){
  return item.id; 
}
Salin selepas log masuk

1.2 Arahan tersuai

Keperluan: Tetapkan warna latar belakang lalai untuk elemen, warna latar belakang apabila tetikus bergerak masuk dan warna latar belakang apabila tetikus bergerak keluar

<div [appHover]="{ bgColor: &#39;skyblue&#39; }">Hello Angular</div>
Salin selepas log masuk
  • Buat arahan tersuai

$ ng g d appHover
# 全称 ng generate directive
Salin selepas log masuk
import { AfterViewInit, Directive, ElementRef, HostListener, Input } from "@angular/core"

// 接收参的数类型
interface Options {
  bgColor?: string
}

@Directive({
  selector: "[appHover]"
})
export class HoverDirective implements AfterViewInit {
  // 接收参数
  @Input("appHover") appHover: Options = {}
  // 要操作的 DOM 节点
  element: HTMLElement
  // 获取要操作的 DOM 节点
  constructor(private elementRef: ElementRef) {
    this.element = this.elementRef.nativeElement
  }
  // 组件模板初始完成后设置元素的背景颜色
  ngAfterViewInit() {
    this.element.style.backgroundColor = this.appHover.bgColor || "skyblue"
  }
  // 为元素添加鼠标移入事件
  @HostListener("mouseenter") enter() {
    this.element.style.backgroundColor = "pink"
  }
  // 为元素添加鼠标移出事件
  @HostListener("mouseleave") leave() {
    this.element.style.backgroundColor = "skyblue"
  }
}
Salin selepas log masuk

2 fungsi paip adalah untuk memformat data templat komponen. Pipe

2.1 Saluran paip terbina dalam

Pemformatan tarikh
  • date

    Pemformatan mata wang
  • currency

    Tukar kepada huruf besar
  • uppercase

    Tukar kepada huruf kecil
  • lowercase

    Format
  • data
  • jsonjson

2.2 Talian Paip Tersuai
<p>{{ date | date: "yyyy-MM-dd" }}</p>
Salin selepas log masuk

Keperluan : Rentetan yang ditentukan tidak boleh melebihi panjang yang ditentukan

3 Perkhidmatan
// summary.pipe.ts
import { Pipe, PipeTransform } from &#39;@angular/core&#39;;

@Pipe({
   name: &#39;summary&#39; 
});
export class SummaryPipe implements PipeTransform {
    transform (value: string, limit?: number) {
        if (!value) return null;
        let actualLimit = (limit) ? limit : 10;
        return value.substr(0, actualLimit) + &#39;...&#39;;
    }
}
Salin selepas log masuk
// app.module.ts
import { SummaryPipe } from &#39;./summary.pipe&#39;
@NgModule({
    declarations: [SummaryPipe] 
});
Salin selepas log masuk

Service3.1 Cipta perkhidmatan<🎜. >

3.2 Skop Perkhidmatan

$ ng g s services/TestService --skip-tests
Salin selepas log masuk
Menggunakan perkhidmatan boleh berkongsi data dengan mudah merentas modul dan komponen, bergantung pada skop perkhidmatan.
import { Injectable } from &#39;@angular/core&#39;;

@Injectable({
  providedIn: &#39;root&#39;
})
export class TestService { }
Salin selepas log masuk
export class AppComponent {
  constructor (private testService: TestService) {}
}
Salin selepas log masuk

Daftar perkhidmatan dalam penyuntik akar, semua modul menggunakan objek contoh perkhidmatan yang sama

  • Daftar perkhidmatan di peringkat modul , Semua komponen dalam modul menggunakan objek contoh perkhidmatan yang sama

    import { Injectable } from &#39;@angular/core&#39;;
    
    @Injectable({
      providedIn: &#39;root&#39;
    })
    
    export class CarListService {
    }
    Salin selepas log masuk
  • untuk mendaftar perkhidmatan di peringkat komponen Komponen dan subkomponennya menggunakan objek contoh perkhidmatan yang sama
    import { Injectable } from &#39;@angular/core&#39;;
    import { CarModule } from &#39;./car.module&#39;;
    
    @Injectable({
      providedIn: CarModule,
    })
    
    export class CarListService {
    }
    Salin selepas log masuk
    import { CarListService } from &#39;./car-list.service&#39;;
    
    @NgModule({
      providers: [CarListService],
    })
    export class CarModule {
    }
    Salin selepas log masuk
  • Alamat asal: https://juejin.cn/post/7008357218210807838
    import { Component } from &#39;@angular/core&#39;;
    import { CarListService } from &#39;../car-list.service.ts&#39;
    
    @Component({
      selector:    &#39;app-car-list&#39;,
      templateUrl: &#39;./car-list.component.html&#39;,
      providers:  [ CarListService ]
    })
    Salin selepas log masuk
    Pengarang: Qian Yi_08>

    Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:
    Video Pengaturcaraan

    ! !

    Atas ialah kandungan terperinci Analisis mendalam arahan, paip dan perkhidmatan dalam Angular. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:掘金--浅忆_0810
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan