In diesem Artikel werden Ihnen die Anweisungen in Angular vorgestellt. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Umgebung:
- Angular CLI: 11.0.6
- Angular: 11.0.7
- Node: 12.18.3
- npm: 6.14.6
- IDE: Visual. Studio Code
Direktive war in der Angular 1.0-Ära (damals AngularJS genannt) sehr beliebt, wird heute jedoch nur noch selten verwendet. Es kann einfach verstanden werden, dass Anweisungen (Anweisungen) verwendet werden, um vorhandene Elemente (DOM) zu erweitern. [Verwandte Tutorial-Empfehlungen: „Angular Tutorial“]
Wenn Sie sich den Angular-Quellcode ansehen, können Sie die folgende Definition sehen
/** * Supplies configuration metadata for an Angular component. * * @publicApi */ export declare interface Component extends Directive {
Ja, Komponente ist von der Richtlinie abgeleitet, das heißt, die Komponente gehört zur Richtlinie.
2.1. Arten von Anweisungen
Komponente ist eine Unterschnittstelle von Direktive und eine spezielle Anweisung kann HTML-Vorlagen haben, Direktive kann jedoch keine Vorlagen haben.
Attributtyp-Direktiven: Wird verwendet, um das Erscheinungsbild und Verhalten von DOM-Elementen zu ändern, ändert jedoch nicht die DOM-Struktur. Zu den typischen Attributtyp-Direktiven in den integrierten Direktiven von Angular gehören ngClass und ngStyle Kapseln Sie Ihre eigene Komponentenbibliothek und Attributtypanweisungen. Dies ist ein Muss.
Strukturanweisungen: Sie können die DOM-Struktur ändern. Zu den integrierten allgemeinen Strukturanweisungen gehören *ngFor
, *ngIf
und *ngSwitch</code >. Da Strukturanweisungen die DOM-Struktur ändern, können nicht mehrere Strukturanweisungen gleichzeitig für dasselbe HTML-Tag verwendet werden. Wenn Sie mehrere Strukturanweisungen für dasselbe HTML-Element verwenden möchten, können Sie erwägen, eine leere Ebene von Elementen hinzuzufügen, um sie zu verschachteln, z. B. eine leere Ebene außerhalb (<code>p
). *ngFor
、*ngIf
和 *ngSwitch
。由于结构型指令会修改 DOM 结构,因而同一个 HTML 标签上面不能同时使用多个结构型指令。如果要在同一个 HTML 元素上面使用多个结构性指令,可以考虑加一层空的元素来嵌套,比如在外面套一层空的(p
) 。
Angualr中用指令来增强DOM的功能,包括 HTML 原生DOM和我们自己自定义的组件(Component)。举例来说,可以扩展一个Button,实现避免点击后,服务器端未响应前的二次点击;高亮某些收入内容等等。
4.1. 指令功能
实现一个指令,鼠标移动到上面时, 背景显示为黄色,鼠标移开,恢复正常。
4.2. Anuglar CLI生成基本文件
ng generate directive MyHighlight
Anuglar CLI自动生成html、css、ut等文件。
4.3. Directive指令核心代码
import { Directive, ElementRef } from '@angular/core'; @Directive({ selector: '[appHighlight]' }) export class HighlightDirective { constructor(el: ElementRef) { el.nativeElement.style.backgroundColor = 'yellow'; } @HostListener('mouseenter') onMouseEnter() { this.highlight('yellow'); } @HostListener('mouseleave') onMouseLeave() { this.highlight(null); } private highlight(color: string) { this.el.nativeElement.style.backgroundColor = color; } }
4.4. 使用该指令
<p my-highlight>Highlight me!</p>
my-highlight
即我们的元素扩展属性(指令、directive)。
指令(Directive)用于扩展DOM 元素或组件的功能。
Angular中的 *ngFor
、*ngIf
和 *ngSwitch
3. Der Zweck von Anweisungen in Angular
🎜Anweisungen werden in Angularr verwendet, um die Funktionalität von DOM zu verbessern, einschließlich HTML-nativem DOM und unseren eigenen benutzerdefinierten Komponenten. Sie können beispielsweise eine Schaltfläche erweitern, um sekundäre Klicks zu vermeiden, bevor der Server nach dem Klicken reagiert. 🎜🎜🎜🎜4. Befehlsbeispiel 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜4.1. Befehlsfunktion 🎜🎜🎜🎜🎜 Wenn die Maus darüber bewegt wird, wird der Hintergrund angezeigt Wird die Maus bewegt, kehrt sie in den Normalzustand zurück. 🎜🎜🎜🎜4.2. Anuglar CLI generiert Basisdateien🎜🎜🎜rrreee🎜Anuglar CLI generiert automatisch HTML-, CSS-, UT- und andere Dateien. 4.3. Kerncode der Direktivenanweisung . 🎜🎜🎜🎜5. Zusammenfassung🎜🎜🎜🎜🎜🎜Direktiven werden verwendet, um die Funktionalität von DOM-Elementen oder -Komponenten zu erweitern. 🎜🎜🎜🎜*ngFor
, *ngIf
und *ngSwitch
in Angular sind alles integrierte Anweisungen in Angular. 🎜🎜🎜🎜Weitere Programmierkenntnisse finden Sie unter: 🎜Programmiervideo🎜! ! 🎜Das obige ist der detaillierte Inhalt vonLassen Sie uns über Direktiven in Angular sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!