mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
4bff346240
Closes #48287. PR Close #48319
69 lines
1.6 KiB
Markdown
69 lines
1.6 KiB
Markdown
@name Missing control flow directive
|
|
|
|
@description
|
|
|
|
This diagnostics ensures that a standalone component which uses known control flow directives
|
|
(such as `*ngIf`, `*ngFor`, `*ngSwitch`) in a template, also imports those directives either
|
|
individually or by importing the `CommonModule`.
|
|
|
|
<code-example format="typescript" language="typescript">
|
|
|
|
import {Component} from '@angular/core';
|
|
|
|
@Component({
|
|
standalone: true,
|
|
// Template uses `*ngIf`, but no corresponding directive imported.
|
|
template: `<div *ngIf="visible">Hi</div>`,
|
|
// …
|
|
})
|
|
class MyComponent {}
|
|
|
|
</code-example>
|
|
|
|
## How to fix the problem
|
|
|
|
Make sure that a corresponding control flow directive is imported.
|
|
|
|
A directive can be imported individually:
|
|
|
|
<code-example format="typescript" language="typescript">
|
|
|
|
import {Component} from '@angular/core';
|
|
import {NgIf} from '@angular/common';
|
|
|
|
@Component({
|
|
standalone: true,
|
|
imports: [NgIf],
|
|
template: `<div *ngIf="visible">Hi</div>`,
|
|
// …
|
|
})
|
|
class MyComponent {}
|
|
|
|
</code-example>
|
|
|
|
or you could import the entire `CommonModule`, which contains all control flow directives:
|
|
|
|
<code-example format="typescript" language="typescript">
|
|
|
|
import {Component} from '@angular/core';
|
|
import {CommonModule} from '@angular/common';
|
|
|
|
@Component({
|
|
standalone: true,
|
|
imports: [CommonModule],
|
|
template: `<div *ngIf="visible">Hi</div>`,
|
|
// …
|
|
})
|
|
class MyComponent {}
|
|
|
|
</code-example>
|
|
|
|
|
|
<!-- links -->
|
|
|
|
<!-- external links -->
|
|
|
|
<!-- end links -->
|
|
|
|
@reviewed 2022-02-28
|