В чистом проекте в Angular 18 канал «json» не работает.
import {Component} from '@angular/core';
import {bootstrapApplication} from '@angular/platform-browser';
@Component({
selector: 'app-root',
standalone: true,
template: `
Hello world!
<p>{{ person | json }}</p>
`,
})
export class PlaygroundComponent {
person = {
name: "Alan",
position: "full-stack developer",
salary: 2000
};
}
bootstrapApplication(PlaygroundComponent);
Я получаю следующую ошибку:
✘ [ERROR] NG8004: No pipe found with name 'json'. [plugin angular-compiler]
Этот код отлично работал в предварительных версиях Angular.
В официальной документации Angular 18 нет примеров json-канала.
Вам нужно добавить JsonPipe в ваш компонент imports
:
@Component({
selector: 'app-root',
standalone: true,
imports: [JsonPipe],
template: `
Hello world!
<p>{{ person | json }}</p>
`,
})
В предыдущих версиях Angular в этом не было необходимости, поскольку для всех сгенерированных модулей импортировался CommonModule
, который включает в себя базовый набор каналов, включая некоторые распространенные каналы и директивы, такие как *ngIf
или json
. Однако по умолчанию это больше не включено, чтобы стимулировать использование потока управления. Для получения более подробной информации проверьте пул реквест, который удалил CommonModule
из схемы: https://github.com/angular/angular-cli/pull/26460
Оно работает! Большое спасибо!