This commit updates the docs examples to be compatible with the `no-string-literal`, `object-literal-key-quotes` and `object-literal-shorthand` tslint rules. This is in preparation of updating the docs examples `tslint.json` to match the one generated for new Angular CLI apps in a future commit. PR Close #38143
26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
// #docregion
|
|
import { Directive } from '@angular/core';
|
|
import { AbstractControl, FormGroup, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';
|
|
|
|
// #docregion cross-validation-validator
|
|
/** A hero's name can't match the hero's alter ego */
|
|
export const identityRevealedValidator: ValidatorFn = (control: FormGroup): ValidationErrors | null => {
|
|
const name = control.get('name');
|
|
const alterEgo = control.get('alterEgo');
|
|
|
|
return name && alterEgo && name.value === alterEgo.value ? { identityRevealed: true } : null;
|
|
};
|
|
// #enddocregion cross-validation-validator
|
|
|
|
// #docregion cross-validation-directive
|
|
@Directive({
|
|
selector: '[appIdentityRevealed]',
|
|
providers: [{ provide: NG_VALIDATORS, useExisting: IdentityRevealedValidatorDirective, multi: true }]
|
|
})
|
|
export class IdentityRevealedValidatorDirective implements Validator {
|
|
validate(control: AbstractControl): ValidationErrors {
|
|
return identityRevealedValidator(control);
|
|
}
|
|
}
|
|
// #enddocregion cross-validation-directive
|