Skip to content

Instantly share code, notes, and snippets.

<mat-icon class="info-icon" (click)="toggleInfoByClick()" color="primary">info</mat-icon>
@Dornhoth
Dornhoth / app.component.html
Last active September 1, 2020 17:30
popup-info
<div class="label" #label>Some Label
<app-info-button [appInfoPopup]="info" [label]="label"></app-info-button>
</div>
<ng-template #info>
<app-info>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor,
dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa,
varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non
fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim.
Pellentesque congue.</app-info>
</ng-template>
@Directive({
selector: '[myValidator]',
providers: [{
provide: NG_VALIDATORS,
useExisting: MyValidatorDirective,
multi: true,
}]
})
class MyValidatorDirective implements Validator {
validate(control: AbstractControl): ValidationErrors | null {
import { Component, InjectionToken, Inject } from '@angular/core';
export const TOKEN = new InjectionToken<string>('MyToken');
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
providers: [
{ provide: TOKEN, useValue: 'my injected object', multi: true },
import { Component, InjectionToken, Inject } from '@angular/core';
export const TOKEN = new InjectionToken<string>('MyToken');
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
providers: [
{ provide: TOKEN, useValue: 'my injected object 1', multi: true },
import { Component, InjectionToken, Inject } from '@angular/core';
export const TOKEN = new InjectionToken<string>('MyToken');
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
providers: [{ provide: TOKEN, useValue: 'my injected object' }]
})
<div [ngTemplateOutlet]="defaultTemplate"></div>
<ng-template #defaultTemplate>
An unexpected error occurred.
</ng-template>
// not going to work
<div class="lesson" *ngIf="array" *ngFor="let element of array">
{{ element }}
</div>
// working
<ng-container *ngIf="array">
<div *ngFor="let element of array">
{{ element }}
</div>
<div *ngIf="text else defaultTemplate">
{{text}}
</div>
<ng-template #defaultTemplate>
An unexpected error occurred.
</ng-template>
<app-error-card></app-error-card>
<app-error-card [template]="googleItTemplate"></app-error-card>
<ng-template #googleItTemplate>
Another error text
<div>
<a href="google.com">Google it</a>
</div>
</ng-template>