Es bietet Zugriff von innerhalb der Komponentenklasse auf das ElementRef-Objekt für das <p>-Tag, das die Vorlagenreferenzvariable "bio" in der Ansichtsvorlage der Komponente hat.
Es zeigt an, dass das <p>-Tag als Kind der übergeordneten Ansicht gerendert wird, die diese Komponente verwendet.
Es ermöglicht dem <p>-Tag in der Vorlage die Unterstützung der Inhaltsprojektion.
Es macht das <p>-Tag in der endgültigen Darstellung sichtbar. Wenn #bio in der Vorlage verwendet wurde und @ViewChild nicht in der Klasse verwendet wurde, würde Angular automatisch das <p>-Tag ausblenden, das #bio darauf hat.
Q2. Welche Methode wird verwendet, um ein FormControl mit einem nativen DOM-Eingabeelement in reaktiven Formularen zu verknüpfen?
Fügen Sie den dem FormControl gegebenen Zeichenfolgennamen einem Attribut namens "controls" auf dem <form>-Element hinzu, um anzugeben, welche Felder es enthalten soll.
Verwenden Sie die eckige Klammersyntax um das Wertattribut auf dem DOM-Element und setzen Sie das gleich zu einer Instanz des FormControls.
Verwenden Sie die Direktive formControlName und setzen Sie den Wert gleich dem dem FormControl gegebenen Zeichenfolgennamen.
Verwenden Sie den dem FormControl gegebenen Zeichenfolgennamen als Wert für das DOM-Element-Id-Attribut.
Q3. Was ist der Unterschied zwischen paramMap und queryParamMap in der Klasse ActivatedRoute?
Der paramMap ist ein Objektliteral der Parameter im URL-Pfad einer Route. Die queryParamMap ist ein Observable dieser gleichen Parameter.
Der paramMap ist ein Observable, das die Parameterwerte enthält, die Teil des URL-Pfads einer Route sind. Die queryParamMap ist eine Methode, die ein Array von Schlüsseln entgegennimmt und dazu dient, spezifische Parameter im paramMap zu finden.
paramMap ist der veraltete Name aus Angular 3. Der neue Name lautet queryParamMap.
Beide sind Observables, die Werte aus dem angeforderten URL-String der Route enthalten. Der paramMap enthält die Parameterwerte, die im URL-Pfad sind, und der queryParamMap enthält die URL-Abfrageparameter.
Q4. Basierend auf der folgenden Verwendung des Async-Pipe und unter der Annahme, dass das Feld "users" der Klasse ein Observable ist, wie viele Abonnements auf das Observable "users" werden gemacht?
<h2>Namen</h2><div *ngFor="let user of users | async">{{ user.name }}</div><h2>Alter</h2><div *ngFor="let user of users | async">{{ user.age }}</div><h2>Geschlechter</h2><div *ngFor="let user of users | async">{{ user.gender }}</div>
Keiner. Das async-Pipe abonniert nicht automatisch.
Keiner. Die Vorlagensyntax ist nicht korrekt.
Drei. Es gibt einen für jedes async-Pipe.
Einer. Das async-Pipe zwischenspeichert Observables intern nach Typ.
Q11. Was ist der Zweck der valueChanges-Methode auf einem FormControl?
Sie wird verwendet, um zu konfigurieren, welche Werte für die Steuerung zugelassen sind.
Sie wird verwendet, um den Wert einer Steuerung auf einen neuen Wert zu ändern. Sie würden diese Methode aufrufen und den neuen Wert für das Formularfeld übergeben. Sie unterstützt sogar das Übergeben eines Arrays von Werten, die im Laufe der Zeit festgelegt werden können.
Sie gibt ein Boolesches Wert zurück, basierend darauf, ob der Wert der Steuerung vom Wert abweicht, mit dem er initialisiert wurde.
Es handelt sich um ein Observable, das jedes Mal emittiert wird, wenn sich der Wert der Steuerung ändert. Sie können also auf neue Werte reagieren und zu diesem Zeitpunkt logische Entscheidungen treffen.
Es macht das itemTotalChanged Klassenfeld öffentlich.
Es bietet eine Möglichkeit, Werte an das itemTotalChanged Klassenfeld zu binden, wie folgt: <app-shopping-cart [itemTotalChanged]="newTotal"></app-shopping-cart>.
Es bietet eine Möglichkeit, Ereignisse an das itemTotalChanged Klassenfeld zu binden, wie folgt: <app-shopping-cart (itemTotalChanged)="logNewTotal($event)"></app-shopping-cart>.
Es ist einfach eine Möglichkeit, einen Kommentar vor einem Klassenfeld zur Dokumentation zu platzieren.
Das ngIf ist eine Abkürzung für das andere Beispiel. Wenn Angular diese Direktive verarbeitet, schreibt es ein Div-Element mit der versteckten Eigenschaft in den DOM.
Sie sind grundsätzlich gleich.
Die ngIf-Direktive rendert das Div im DOM nicht, wenn der Ausdruck falsch ist. Die Verwendung der hidden-Eigenschaft verbirgt den Div-Inhalt im Browser-Viewport, aber das Div ist immer noch im DOM.
Das ngIf ist gültig, aber die Verwendung der hidden-Eigenschaft ist falsch und wird einen Fehler verursachen.
Q15. Wie können Sie die Schaltfläche zum Absenden deaktivieren, wenn das Formular in diesem beispiel für template-gesteuerte Formulare Fehler aufweist?
Q17. Basierend auf der folgenden Komponente, welche Template-Syntax würden Sie verwenden, um das Feld titleText der TitleCardComponent mit der Eigenschaft title des h1-Elements zu verbinden?
Protokollierer zur Verfolgung der Gesundheit einer Angular-App
Anbieter, die zur Verfolgung der Instanzen von Komponenten verwendet werden können
Eingebaute Pipes, die in Vorlagen für DOM-Ereignisse verwendet werden können
Reservierte benannte Methoden für Komponenten und Direktiven, die Angular während seiner Ausführung zu bestimmten Zeiten aufrufen wird und die genutzt werden können, um diese Lebenszyklus-Momente anzuzapfen
Q19. Wählen Sie die beste Beschreibung für diesen Template-Syntax-Code aus:
<span>Boss: {{job?.bossName}}</span>
Das ? ist eine Abkürzung für das Async Pipe. Der Wert job muss ein Observable sein.
Es verwendet den sicheren Navigationsoperator (?) für das job-Feld. Wenn das job-Feld undefiniert ist, wird der Zugriff auf bossName ignoriert und es tritt kein Fehler auf.
Im Template-Syntax gibt es einen Fehler. Das ? ist hier nicht gültig.
Es zeigt den Wert von job an, wenn er vorhanden ist; andernfalls wird bossName angezeigt.
Q20. Wie würden Sie eine Routendefinition für eine UserDetailComponent konfigurieren, die den URL-Pfad user/23 unterstützt (wobei 23 die id des angeforderten Benutzers darstellt)?
Sie setzen das Feld CalloutDirective.fontWeight basierend darauf, ob die Maus über dem DOM-Element ist oder nicht. Der HostListener setzt dann die CSS-Eigenschaft font-weight auf den Wert fontWeight.
Sie richten die Direktive ein, um das DOM-Element zu überprüfen, auf dem sie sich befindet. Wenn für Maus-Eintritt und -Verlassen Ereignisbindungen hinzugefügt wurden, wird dieser Code verwendet. Andernfalls passiert nichts.
Dies ist eine falsche Verwendung von HostListener und HostBinding. Die Dekorateure HostListener und HostBinding tun nichts auf Direktiven; sie funktionieren nur, wenn sie auf Komponenten angewendet werden.
Wenn das DOM-Element, auf dem diese Direktive platziert ist, die CSS-Eigenschaft font-weight gesetzt hat, werden die Ereignisse mouseenter und mouseleave ausgelöst.
Q22. Welche Angular-Template-Syntax können Sie auf diesem template-gesteuerten Formularfeld verwenden, um auf den Feldwert zuzugreifen und die Validierung im Template-Markup zu überprüfen?
Sie sind gleich. Beide führen zu einer neuen Instanz von Logger, die an das FormattedLogger-Token gebunden ist.
Die Syntax useClass teilt dem Injector mit, eine neue Instanz von Logger zu erstellen und diese Instanz dem FormattedLogger-Token zuzuweisen. Die Verwendung der Syntax useExisting bezieht sich auf eine bereits vorhandene Objektinstanz, die als Logger deklariert ist.
Beide sind falsch. Ein starker Typ kann nicht für useClass oder useExisting verwendet werden.
Sie sind gleich. Beide führen dazu, dass das FormattedLogger-Token ein Alias für die Instanz von Logger ist.
Das <div> dient als Platzhalter. Wenn das Produktklassenfeld "wahr" ist, wird das <div> durch den Wert von product.name ersetzt; wenn nicht, wird nichts gerendert.
Das <div> wird immer gerendert, und wenn das Produktfeld "wahr" ist, wird das <div>-Element den Wert von product.name enthalten; sonst wird es das <div>-Element ohne Wert rendern.
Es tritt ein Fehler auf, da ngIf keine eingebaute strukturelle Direktive ist.
Wenn das Produktklassenfeld "wahr" ist, wird die gerenderte DOM den <div> mit dem Wert des Feldes product.name enthalten. Wenn es nicht "wahr" ist, wird die gerenderte DOM das <div>-Element nicht enthalten.
Es bietet eine Möglichkeit, die Dokumentstruktur einer Angular-Anwendung zu codieren. Das @NgModule ist eine Form von Inline-Code-Kommentierung, die vom TypeScript-Compiler ignoriert wird, aber in Code-Editor-Anwendungen mit spezieller Formatierung angezeigt wird.
Es deklariert ein Angular-Modul namens AppModule und macht es im gesamten Anwendungscode für Lazy Loading verfügbar.
Es deklariert ein Angular-Modul namens AppModule, das eine bootstrapped-Komponente namens AppComponent enthält. Dann registriert es dieses Modul bei Angular, damit die App gestartet werden kann.
Vor dem Laden des UserComponent abonniert der Router das von einer resolve-Methode im UserResolverService zurückgegebene Observable. Diese Technik kann verwendet werden, um vorgeladene Daten für eine Route zu erhalten.
Nachdem die Route gelöst ist und die Komponente geladen und gerendert wurde, wird der UserResolverService eine Methode namens user haben, die alle offenen Datenverbindungen bereinigt.
Es gibt einen Fehler. Der korrekte Eigenschaftsname ist onResolve.
Das UserComponent wird einen Parameter in seinem Konstruktor für user haben, und der Router wird sich um das Einbringen eines Werts dafür aus einem Aufruf einer user-Methode im UserResolverService kümmern.
Wenn Elemente TabsComponent zur Vorlage von TabsListComponent hinzugefügt werden, werden sie zur Laufzeit in das <ng-content>-Element eingefügt.
Es erstellt TabComponent-Komponenten in der TabsListComponent-Vorlage, wenn ein TabsListComponent instanziiert wird.
Es ermöglicht den Zugriff von innerhalb der Komponentenklasse auf alle TabComponent-Komponenten, die in das <ng-content> für diese Komponente projiziert wurden.
Es beschränkt die zulässigen Elemente, die in ein TabsListComponent-Element eingefügt werden können, um nur TabComponent-Elemente zuzulassen.
Es verfolgt etwaige Änderungen an der UI und der Unittest schlägt fehl, wenn Änderungen vorgenommen wurden.
Es wird verwendet, um die Stabilität des Komponentenvorlagen über mehrere Unittests im gesamten Testpaket sicherzustellen.
Es zwingt Angular dazu, die Änderungserkennung durchzuführen, was dazu führt, dass das UserCardComponent gerendert wird, bevor Sie seine Vorlage überprüfen können.
Es wird verwendet, um Änderungserkennungsereignisse während der Ausführung von Unittests in der Konsole zu protokollieren.
Q33. Wenn ein Dienst für den Root bereitgestellt wird und auch in die Konfiguration der Anbieter für ein lazy-loaded Modul aufgenommen wird, welches Instanz dieses Dienstes stellt der Injektor für Konstruktoren im lazy-loaded Modul bereit?
Eine neue Instanz dieses Dienstes wird erstellt, wenn das Modul lazy geladen wird.
Das Bereitstellen eines Dienstes des gleichen Typs auf Modulebene, die lazy geladen werden, ist nicht erlaubt.
Wenn eine Instanz des Dienstes noch nicht auf Root-Ebene erstellt wurde, wird dort eine erstellt und dann verwendet.
Es wird immer eine einzelne Instanz dieses Dienstes auf Root-Ebene instanziiert und ist die einzige, die jemals verwendet wird, einschließlich innerhalb von Lazy-Modulen.
Q34. Was macht der HostBinding-Dekorierer in dieser Direktive?
Er fügt dem DOM-Element, das die Direktive appHighlight hat, die CSS-Klasse mit dem Namen highlighted hinzu.
HostBinding tut nichts bei Direktiven, sondern nur bei Komponenten.
Es wird angegeben, dass, wenn das Host-Element der Klasse highlighted in sein class-Attribut hinzugefügt wird, das Direktiven-Klassenfeld highlight auf true gesetzt wird; und wenn es nicht auf dem Host hinzugefügt wird, wird es auf false gesetzt.
Es erstellt ein Inline-Styles auf dem Host-Element mit einer CSS-Eigenschaft mit dem Namen highlight, die auf true gesetzt ist.
Q35. In reaktiven Formularen, welche Angular-Formularklassentyp wird auf dem nativen DOM <form>-Element verwendet, um es zu verbinden?
FormArray
FormControl
FormGroup
alle diese Antworten
Q36. Angenommen, das FormControl für den Benutzernamen wurde mit einem minLength-Validierer konfiguriert, wie können Sie ein Fehlerdisplay in der folgenden reaktiven Formularmarkierung für das Benutzernamenfeld einrichten?
<inputtype="text"formControlName="username" #userName="ngModel" /><span *ngIf="userName.errors.minlength"> Username must be at least {{ userName.errors.minlength.requiredLength }} characters.
</span>
Die RxJs-Pipe-Methode ist ein Alias für die subscribe-Methode, daher wird ein Aufruf von getSettings die GET-Abfrage ausführen. Der retry-Operator wird verwendet, um dem Pipe-Aufruf mitzuteilen, dass die GET-Abfrage dreimal wiederholt werden soll.
Es wird zur Laufzeit einen Fehler geben, weil die Pipe-Methode nicht aus dem Aufruf Httpclient.get verfügbar ist.
Jeder einzelne Aufruf der Methode getSettings führt dazu, dass der Httpclient insgesamt drei GET-Anforderungen an die settingsUrl sendet, was nicht ideal ist, da immer zwei zusätzliche Aufrufe erfolgen, die nicht benötigt werden. Der retry-Operator sollte nicht auf diese Weise verwendet werden.
Wenn das Ergebnis der Methode getSettings abonniert wird, wird der HTTP-GET-Aufruf durchgeführt; wenn er fehlschlägt, wird er bis zu drei Mal wiederholt, bevor er aufgibt und einen Fehler zurückgibt.
Q43. Wenn ein Dienst einige Einrichtung erfordert, um seinen Standardzustand über eine Methode zu initialisieren, wie können Sie sicherstellen, dass diese Methode aufgerufen wird, bevor der Dienst irgendwo injiziert wird?
Legen Sie die Logik dieser Dienstmethode in den Dienstkonstruktor.
Verwenden Sie einen Factory-Anbieter auf der Root-AppModule-Ebene, der vom Dienst abhängt, um diese Dienstmethode aufzurufen.
Es ist nicht möglich, dies beim Start der Anwendung zu tun; Sie können es nur auf Komponentenebene tun.
Instanziieren Sie eine Instanz des Dienstes auf globaler Ebene (Fensterbereich) und rufen Sie dann diese Methode auf.
Das TestBed wird immer benötigt, wenn Sie ein Spionageobjekt in einem Einheitstest für einen Angular-Anbieter verwenden möchten.
Das TestBed wird verwendet, um die Ansicht eines Komponenten zu testen.
Das TestBed konstruiert ein NgModule mit zwei Anbietern und behandelt jede Abhängigkeitsinjektion. Wenn eine Angular-Klasse den DataService in ihrem Konstruktor anfordert, wird der TestBed einen Spion in diesen Konstruktor einfügen.
Das TestBed konfiguriert den Testrunner so, dass nur Tests für die beiden Anbieter in seinem Anbieter-Array ausgeführt werden.
Alle anderen Tests werden ignoriert, einschließlich Tests, die Ergebnisse gegen einen dieser Anbieter und einen nicht definierten Anbieter überprüfen.Obwohl es funktioniert, wenn mehrere Anbieter in dieser Konfiguration in einem einzelnen Test überprüft werden.
Q45. Was ist der Hauptunterschied zwischen einer Komponente und einer Direktive?
Eine Komponente verwendet eine Selector-Metadaten-Eigenschaft und eine Direktive nicht.
Eine Direktive kann verwendet werden, um benutzerdefinierte Ereignisse dem DOM hinzuzufügen, und eine Komponente kann dies nicht.
Eine Komponente hat ein Template und eine Direktive nicht.
Eine Direktive kann nur auf native DOM-Elemente abzielen.
Q46. Was könnten Sie dieser Direktivenklasse hinzufügen, um die Länge des Abschneidens während der Verwendung der Direktive in der Markup zu ermöglichen?
@Directive({
selector: '[appTruncate]'
})
export class TruncateDirective {
. . .
}
// example of desired usage:<p [appTruncate]="10">Some very long text here</p>
@Input() appTruncate: number;
@Output() appTruncate;
constructor(maxLength: number) { }
Nichts. Der Direktiv-Selektor kann nicht verwendet werden, um Werte an die Direktive zu übergeben.
Q48. Vorausgesetzt, dass der DataService in den Anbietern für die Anwendung registriert wurde, welche Antwort beschreibt am besten, was basierend auf dem Konstruktor dieser Komponente passiert?
Es erklärt, dass die OrderHistoryComponent ihre eigene Version eines DataService haben wird und dass es niemals vorhandene Instanzen verwenden sollte. Der DataService müsste als privates Feld innerhalb der Klasse instanziiert werden, damit dieser Code vollständig und funktionsfähig ist.
Wenn Angular eine neue Instanz der OrderHistoryComponent erstellt, wird der Injektor eine Instanz einer DataService-Klasse für das erste Argument des Komponentenkonstruktors bereitstellen. Der Konstruktorparameter dataService wird verwendet, um ein privates Instanzfeld mit demselben Namen in der Instanz zu setzen.
Es bietet eine Möglichkeit, nur Komponententests durchzuführen; der Konstruktor hat keine Verwendung im eigentlichen Betrieb der Angular-Anwendung.
Es ermöglicht es dem benutzerdefinierten Element, auf das die Komponente abzielt, eine benutzerdefinierte Eigenschaft namens dataService zu haben, die zum Binden einer vorhandenen DataService-Instanz verwendet werden kann.
Das FormControl für username wird so konfiguriert, dass drei Validatoren von den Validatoren ausgeschlossen werden, die es verwenden darf.
Das FormControl für username wird so konfiguriert, dass drei mögliche Validatoren verwendet werden können: required, maxLength und ein benutzerdefinierter namens unique. Um diese Validator zu aktivieren, müsste eine Validator-Direktive auf den Formularfeldern im Markup platziert werden.
Validierung kann in reaktiven Formularen nicht auf diese Weise eingerichtet werden.
Das FormControl für username wird mit drei Validatoren konfiguriert: den required- und minLength-Validatoren, die von Angular stammen, und einer benutzerdefinierten Validierungsfunktion namens unique, die prüft, ob der Wert ungleich dem String admin ist.
Er registriert einen Anbieter für den Dienst, der nur auf der Root-Modul-Ebene verfügbar ist, nicht für alle untergeordneten Module.
Er registriert einen Anbieter für den Dienst im Root-Anwendungs-Injektor und macht eine einzelne Instanz davon in der gesamten Anwendung verfügbar.
Er ermöglicht es, den Dienst nur im startkomponente für die Anwendung zu injizieren.
Es richtet eine Kompilierungszeitregel ein, die es Ihnen ermöglicht, den Diensttyp nur in der Providers-Metadaten-Eigenschaft des Root-NgModule zu platzieren.
Das InjectionToken fügt eine Instanz von AppSettings über den InjectionToken-Konstruktoraufruf dem Root-Anbieter hinzu, wodurch sie automatisch allen NgModules, Diensten und Komponenten in der Angular-Anwendung ohne Notwendigkeit zur Injektion zur Verfügung steht.
Das InjectionToken wird verwendet, um ein Anbieter-Token für eine Nicht-Klassenabhängigkeit zu erstellen. Ein Objektliteral kann als Wert für den APP_SETTINGS-Abhängigkeitsanbieter-Typ bereitgestellt werden, der dann in Komponenten, Diensten usw. injiziert werden kann.
Das InjectionToken wird verwendet, um einen dynamischen Dekorator für die AppSettings zu erstellen, der auf Konstruktorparameter über einen @AppSettings-Dekorator angewendet werden kann.
Dieser Code hat einen Fehler, da Sie keinen TypeScript-Interface für den generischen Typ auf dem InjectionToken verwenden können.
Q54. Für das folgende Beispiel für Template-driven Formulare, welches Argument kann der submit-Methode im Klickereignis übergeben werden, um die Daten für das Formular zu übermitteln?
Es ermöglicht die Option, einzelne Routen für das Vorladen zu markieren.
Es lädt alle Abhängigkeiten für Routen im Voraus, indem es Instanzen von Diensten erstellt, wenn die App zum ersten Mal gestartet wird.
Es stellt sicher, dass alle Module in eine einzige App-Modul-Bundle-Datei gebaut werden.
Es konfiguriert den Router so, dass sofort alle Routen geladen werden, die eine loadChildren-Eigenschaft haben (Routen, die normalerweise bei Bedarf geladen werden).
Es tut nichts, da das async-Pipe nicht in einer ngFor-Anweisung verwendet werden kann.
Es konfiguriert die ngFor-Iteration, um gleichzeitig mehrere Listen von Benutzern zu unterstützen.
Es abonniert das von der Methode HttpClient.get zurückgegebene Observable und entpackt den zurückgegebenen Wert, damit er in der ngFor iteriert werden kann.
Es ermöglicht es, alle Benutzer im Feld users gleichzeitig im DOM zu rendern.
Q58. Wie würden Sie diese Direktive im Markup basierend auf ihrem Selektorwert verwenden?
[Wie rufe ich eine Angular 2 Pipe mit mehreren Argumenten auf?] (https://stackoverflow.com/questions/36816788/how-do-i-call-an-angular-2-pipe-with-multiple-arguments)
Q61. Welchen Angular CLI-Befehl würden Sie ausführen, um eine UsersComponent zu generieren und sie zum SharedModule hinzuzufügen (in der Datei shared.module.ts in Ihrer Anwendung)?
ng generate component --newModule=shared
ng generate component users --module=shared
ng generate component users --shared
ng generate component --add=shared
Q62. Wie können Sie dieses Markup neu schreiben, damit der div-Container beim endgültigen DOM-Rendering nicht benötigt wird?
Dieser Code enthält einen Fehler, da Sie eine TypeScript-Schnittstelle nicht für den generischen Typ auf InjectionToken verwenden können.
Das InjectionToken wird verwendet, um einen Provider-Token für eine nicht-klassenbasierte Abhängigkeit zu erstellen. Ein Objektliteral kann als Wert für den APP_SETTINGS-Abhängigkeitsprovider-Typ bereitgestellt werden, der dann in Komponenten, Diensten usw. injiziert werden kann.
Das InjectionToken fügt über den Aufruf des InjectionToken-Konstruktors eine Instanz von AppSettings zum Root-Provider hinzu, sodass sie automatisch für alle NgModules, Dienste und Komponenten in der Angular-Anwendung verfügbar ist, ohne sie irgendwo injizieren zu müssen.
Das InjectionToken wird verwendet, um einen dynamischen Dekorator für die AppSettings zu erstellen, der auf Konstruktorparametern über einen @AppSettings-Dekorator verwendet werden kann.
Q64. Welche Angular-Hilfsprogramme werden benötigt, um einen Dienst ohne Konstruktorabhängigkeiten zu testen?
Die By.css() -Hilfsmethode ist erforderlich.
Ein Text-Fixture ist erforderlich, um den Dienst für den Unittest auszuführen.
Keine. Ein Dienst kann eigenständig instanziiert und unabhängig getestet werden.
Die TestBed-Klasse wird benötigt, um den Dienst zu instanziieren.
Q65. Was ist der Unterschied zwischen den Routenschutz-CanActivate- und CanLoad-Routenwächtern?
CanActivate wird verwendet, um den Zugriff zu überprüfen. CanLoad wird verwendet, um Daten für die Route vorab zu laden.
CanLoad wird beim App-Start verwendet, um das Hinzufügen von Routen zur Routentabelle zu erlauben oder zu verweigern. CanActivate wird verwendet, um den Zugriff auf Routen zum Zeitpunkt ihrer Anforderung zu verwalten.
CanActivate und CanLoad tun genau dasselbe.
CanLoad verhindert die Bereitstellung und das Laden eines gesamten NgModule. CanActivate stoppt die Routenführung zu einer Komponente in diesem NgModule, aber dieses Modul wird dennoch geladen.
CanActivate vs Canload CanActivate verhindert den Zugriff auf Routen, CanLoad verhindert das verzögerte Laden.
Q66. Wofür wird die Outlet-Eigenschaft im Router-Definition-Objekt verwendet?
Es werden alle Instanzen von <document-box> im DOM lokalisiert und bei der Routennavigation ein DocumentComponent-Element in sie eingefügt.
Es wird erklärt, dass das DocumentComponent neben der Routenführung als Kind zu einem <document-box>-Element verwendet werden kann.
Es wird verwendet, um ein <router-outlet>-Element mit dem Attributnamen, das mit dem Zeichenfolgenwert übereinstimmt, als Ort für das Rendern von DocumentComponent festzulegen, wenn darauf zugegriffen wird.
Es ist eine Stromquelle für den Router. (Definitiv nicht die Antwort :P)
Q67. In dieser Vorlagensyntax führt die ngFor-Strukturanweisung bei jeder Änderung der items-Eigenschaft (Hinzufügen, Entfernen usw.) ihre Logik für alle DOM-Elemente in der Schleife erneut aus. Welche Syntax kann verwendet werden, um dies effizienter zu machen?
ng build --configuration=production --progress=false
Es erstellt die Angular-Anwendung, legt die Build-Konfiguration auf das im angular.json-Datei angegebene "production"-Ziel fest und gibt den Fortschrittsausgabe auf der Konsole aus.
Es erstellt die Angular-Anwendung, legt die Build-Konfiguration auf das im angular.json-Datei angegebene "production"-Ziel fest und überwacht Dateien auf Änderungen.
Es erstellt die Angular-Anwendung, legt die Build-Konfiguration auf das im angular.json-Datei angegebene "production"-Ziel fest und deaktiviert das Überwachen von Dateien auf Änderungen.
Es erstellt die Angular-Anwendung, legt die Build-Konfiguration auf das im angular.json-Datei angegebene "production"-Ziel fest und verhindert die Fortschrittsausgabe auf der Konsole.
Q69. Können Servicetypen über welche Dekoratoren als Anbieter registriert werden?
@Injectable, @NgModule, @Component und @Directive.
Nur @Injectable.
Nur @Injectable und @NgModule.
Nur @Service und @NgModule.
Q70. Wofür wird der Input-Dekorator in dieser Komponentenklasse verwendet?
@Component({ selector:'app-product-name', ...})export class ProductNameComponent { @Input() productName: string}
Es wird einfach verwendet, um einen Kommentar vor einem Klassenfeld zur Dokumentation zu platzieren.
Es bietet eine Möglichkeit, Werte an das productName-Feld zu binden, indem der Komponenten-Selektor verwendet wird.
Es generiert automatisch ein html <input type='text' id='productName'> DOM-Element in der Komponentenvorlage.
Es bietet eine Möglichkeit, Werte an das productName-Instanzfeld zu binden, ähnlich wie bei nativen DOM-Elementeigenschaftsbindungen.
Angular-Dokumentation - Input()
Q71. Welcher Routenwächter kann verwendet werden, um die Navigation zu einer Route zu vermitteln?
Q76. Welche Antwort erklärt am besten die Verwendung von ngModel in diesem Vorlagencode?
<input [(ngModel)]="user.name" />
Es zeigt das Eingabeelement nur an, wenn die user.name-Eigenschaft einen Wert hat.
Es ist die Zweiwege-Datenbindungsyntax. Der Wert der Eingabeelement-Eigenschaft wird mit der user.name-Eigenschaft verbunden, und das Wertänderungsereignis für das Formularelement aktualisiert den Wert der user.name-Eigenschaft.
Im Code ist ein Tippfehler vorhanden. Es sollte nur die eckigen Klammern haben.
Es bindet den Wert der user.name-Eigenschaft an die val-Eigenschaft des Eingabeelements, um ihren Initialwert festzulegen.
Q77. Welche Methode wird verwendet, um ein FormControl mit einem nativen DOM-Eingabeelement in reaktiven Formularen zu verbinden?
Verwenden Sie den als Wert für das DOM-Element-ID-Attribut gegebenen Zeichenfolgennamen des FormControl.
Verwenden Sie die formControlName-Direktive und setzen Sie den Wert auf den als Wert für das FormControl gegebenen Zeichenfolgennamen.
Fügen Sie den als Wert für das FormControl gegebenen Zeichenfolgennamen einem Attribut namens controls auf dem <form>-Element hinzu, um anzuzeigen, welche Felder es enthalten soll.
Verwenden Sie die eckige Klammerbindungssyntax um das value-Attribut des DOM-Elements und setzen Sie dies auf eine Instanz des FormControls.
Q78. Welche andere Vorlagensyntax (Ersetzung der ngClass-Direktive) kann verwendet werden, um die CSS-Klassen in diesem Markup hinzuzufügen oder zu entfernen?
Es gibt an, dass die CustomValidatorDirective auf mehreren Formularelementtypen verwendet werden kann.
Es ermöglicht die Instanziierung mehrerer Instanzen der CustomValidatorDirective. Ohne multi wäre die CustomValidatorDirective ein Singleton für die gesamte App.
Es ermöglicht die Registrierung verschiedener Anbieter für das einzelne NG_VALIDATORS-Token. In diesem Fall wird die CustomValidatorDirective zur Liste der verfügbaren Formularvalidatoren hinzugefügt.
Es gibt an, dass es mehrere Klassen geben wird, die die Logikimplementierung für den benutzerdefinierten Validator behandeln.
Q80. Welches Angular-CLI-Kommando würden Sie verwenden, um Ihre Unittests in einem Prozess auszuführen, der Ihre Testsuite bei Dateiänderungen erneut ausführt?
ng test --single-run=false
ng test --watch-files
ng test --progress
ng test
Q81. Wofür wird am häufigsten das ngOnDestory-Lebenszyklushook verwendet?
Entfernen von DOM-Elementen aus der Ansicht der Komponente
Alle diese Antworten
Löschen von injizierten Diensten
Abmelden von Beobachtbaren und Trennen
Q82. Welche NgModule-Dekoratormetadateneigenschaft wird genutzt, um anderen .... zu erlauben?
öffentlich
Experten
Gemeinsam
Deklarationen
Q83. Was ist der Unterschied zwischen den CanActivate- und CanLoad-Routenwächtern?
CanLoad verhindert das Bereitstellen und Laden eines gesamten NGModules. CanActivate stoppt die Routenführung zu einer Komponente in diesem NgModule, aber das Modul wird dennoch geladen.
CanActivate und CanLoad tun genau dasselbe.
CanActivate wird verwendet, um den Zugriff zu überprüfen. CanLoad wird verwendet, um Daten für die Route vorab zu laden.
CanLoad wird beim App-Start verwendet, um das Hinzufügen oder Verweigern von Routen zur Routentabelle zu ermöglichen. CanActivate wird verwendet, um den Zugriff auf Routen zum Zeitpunkt ihrer Anforderung zu verwalten.
Q84. Mit der folgenden Komponentenklasse, welche Vorlagensyntax würden Sie im Template verwenden, um das Ergebnis des Aufrufs der currentYear-Klassenfunktion anzuzeigen?