التوجيهات هي طرق توفرها Angular操作DOM
. تنقسم التعليمات إلى属性指令
结构指令
.
توجيه السمة: تعديل مظهر أو سلوك عنصر موجود، وتغليفه بـ []
.
التعليمات الهيكلية: قم بإضافة عقد DOM وحذفها لتعديل التخطيط، واستخدم *
كبادئة للتعليمات. [البرامج التعليمية ذات الصلة الموصى بها: "البرنامج التعليمي الزاوي"]
1. التعليمات المضمنة
1.1 *ngIf
渲染
عقد DOM أو移除
عقد DOM بناءً على الشروط.
<div *ngIf="data.length == 0">لا مزيد من البيانات</div>
<div *ngIf="data.length > 0; ثم قائمة البيانات else noData"></div> <ng-template #dataList>قائمة الدورات التدريبية</ng-template> <ng-template #noData>لا مزيد من البيانات</
ng-template> يتم استخدام ng-template
لتحديد القوالب بعد استخدام ng-template
لتحديد قالب، يمكنك استخدام تعليمات ng-container
و templateOutlet
لاستخدامه.
<ng-قالب #تحميل> <button (click)="login()">تسجيل الدخول</button> <button (click)="sigup()">sigup</button> </ng-قالب> <ng-container *ngTemplateOutlet="loading"> </ng-container>
1.2 [hidden]
显示
عقد DOM أو隐藏
عقد DOM (العرض) حسب الشروط.
<div [hidden]="data.length == 0">قائمة المقررات الدراسية</div> <div [hidden]="data. length > 0">لا مزيد من البيانات</div>
1.3 *ngFor
يجتاز البيانات لإنشاء
واجهة بنية HTML List { المعرف: الرقم الاسم: سلسلة العمر: الرقم } القائمة: القائمة[] = [ { المعرف: 1، الاسم: "زانغ سان"، العمر: 20 }، { المعرف: 2، الاسم: "李思"، العمر: 30 } ]
<لي *نجفور =" اسمحوا عنصر القائمة؛ دعني = الفهرس؛ دع isEven = حتى؛ دع isOdd = غريب؛ Let isFirst = first; دع isLast = last; " > </li>
<li *ngFor="السماح بعنصر القائمة؛ TrackBy: تحديد"></li>
تحديد(index, item){ إرجاع item.id; }
2. متطلبات الأوامر المخصصة
: قم بتعيين لون الخلفية الافتراضي للعنصر، ولون الخلفية عندما يتحرك الماوس للداخل، ولون الخلفية عندما يتحرك الماوس للخارج.
<div [appHover]="{ bgColor: 'skyblue' }">مرحبًا Angular</div>
import { AfterViewInit, Directive, ElementRef, HostListener, Input } from "@angular/core" // تلقي خيارات واجهة نوع المعلمة { bgColor ؟: سلسلة } @التوجيه({ المحدد: "[appHover]" }) فئة التصدير HoverDirective تنفذ AfterViewInit { // تلقي المعلمات @Input("appHover") appHover: Options = {} // عنصر عقدة DOM الذي سيتم تشغيله عليه: HTMLElement // احصل على عقدة DOM ليتم تشغيلها على المُنشئ (private elementRef: ElementRef) { this.element = this.elementRef.nativeElement } // قم بتعيين لون خلفية العنصر بعد الإكمال الأولي لقالب المكون ngAfterViewInit() { this.element.style.backgroundColor = this.appHover.bgColor || "skyblue". } // أضف حدث تحريك الماوس إلى العنصر @HostListener("mouseenter") enter() { this.element.style.backgroundColor = "وردي" } // أضف حدث إخراج الماوس للعنصر @HostListener("mouseleave") leave() { this.element.style.backgroundColor = "السماء الزرقاء" } }
يتمثل دور خط الأنابيب格式化组件模板数据
.
1.
تنسيق
تاريخ
خط
الأنابيب
المدمج
، تنسيق عملة العملة، تحويل إلى أحرف كبيرة صغيرة، تحويل إلى تنسيق json صغير، بيانات json{{ date | date: "yyyy-MM-dd" }}
2. متطلبات خط الأنابيب المخصصة
: لا يمكن أن تتجاوز السلسلة المحددة الطول المحدد
<!-- هذا... --> {{'هذا اختبار' |. ملخص: 3}}
// Summary.pipe.ts استيراد { Pipe, PipeTransform } من '@angular/core'; @ماسورة({ الاسم: "ملخص" }); فئة التصدير SummaryPipe تنفذ PipeTransform { تحويل (القيمة: سلسلة، الحد؟: رقم) { إذا كانت (! القيمة) تُرجع فارغة؛ دع الحد الفعلي = (الحد) ? قيمة الإرجاع.substr(0, الفعليLimit) + '...'; } }
// app.module.ts استيراد { SummaryPipe } من "./summary.pipe" @NgModule({ تصريحات: [ SummaryPipe ] });