Angular 17 introduces @for and @if directives, which provide a more powerful and expressive way to handle loops and conditionals in templates. These directives aim to simplify the syntax and enhance performance.
Example: Using @for Directive
The @for directive offers a cleaner and more intuitive way to iterate over collections in templates.
import { Component } from '@angular/core';
@Component({
selector: 'app-for-example',
template: `
<ul>
@for (let item of items) {
<li>{{ item.name }}</li>
}
</ul>
`
})
export class ForExampleComponent {
items = [
{ name: 'Item 1' },
{ name: 'Item 2' },
{ name: 'Item 3' }
];
}
Example: Using @if Directive
The @if directive simplifies conditional rendering in templates, making it more readable and maintainable.
import { Component } from '@angular/core';
@Component({
selector: 'app-if-example',
template: `
@if (isLoggedIn) {
<p>Welcome back, user!</p>
} else {
<p>Please log in.</p>
}
`
})
export class IfExampleComponent {
isLoggedIn = false;
}
These new directives provide a more natural way to write conditional and loop logic directly within your templates, improving readability and reducing boilerplate code.