Прикрепленный скриншот - это не архитектура, а файловая структура проекта. И это не имеет никакого отношения к совместному использованию данных, поскольку файлы правильно указаны в модуле и других файлах, где они используются.
Источником путаницы здесь является схема именования. Давайте рассмотрим одну простую строку
<app-post-list [pub1]="pub1"></app-post-list>
˄ ˄
| |
@Input() member
variable variable
of post-list of app-component
Как видите, [pub1]
относится к входной переменной компонента post-list
, а pub1
справа относится к значению переменной-члена ("Ma première publi "в вашем случае).
Хотя приведенный выше шаблон не является неправильным, если вы начинаете Angular, вам может пригодиться наличие некоторых очевидных шаблонов именования. Например,
<app-post-list [pub1Input]="pub1Value"></app-post-list>
Теперь существует четкое различие между именами переменных, и это помогает лучше понять. Затем вы снова отправляете переменную из post-list
в post-list-item
компонент. Я изменил ваш код на следующий, и он работает как положено.
Компонент приложения
export class AppComponent {
title = 'blogApp';
pub1Value: string = "Ma première publi";
}
<div class="row">
<div class="col-12">
<app-post-list [pub1Input]="pub1Value"></app-post-list>
</div>
</div>
Компонент списка сообщений
export class PostListComponent implements OnInit {
@Input() pub1Input: string;
titrePubliOne = 'title 1';
titrePubliTwo = 'title 2';
titrePubliThree = 'title 3';
constructor() { }
ngOnInit() { }
}
<ul class="list-group">
<app-post-list-item [titrePubli]="titrePubliOne" [pub1]="pub1Input"></app-post-list-item>
<app-post-list-item [titrePubli]="titrePubliTwo" [pub1]="pub1Input"></app-post-list-item>
<app-post-list-item [titrePubli]="titrePubliThree" [pub1]="pub1Input"></app-post-list-item>
</ul>
Элемент элемента списка сообщений
export class PostListItemComponent implements OnInit {
@Input() titrePubli: string;
@Input() pub1: string;
contenuPubli: string = "C'est le bla bla bla";
constructor() { }
ngOnInit() { }
}
<li class="list-group-item">
<h3 style="font-size: 20px;">Titre : {{ titrePubli }}</h3>
<h4 style="font-size: 18px;">Contenu : {{ pub1 }}</h4>
</li>
Рабочий пример: Stackblitz