Доброе утро,
Я новичок с angular 6 и создаю персональный сайт с Angular + NodeJs.
Я строю интерфейс с 2 секциями по 3 кнопки, каждая кнопка запускает модальный заголовок (название кнопки) и тело (массив абзацев с содержимым).Такая информация, как заголовок раздела, имя кнопки, модальное тело, отправляется сервером узла в виде строки JSON.
Все отлично работает на стороне сервера.строка JSON хорошо отправляется, когда мой сервис на лицевой стороне выполняет запрос.Названия кнопок хорошо отображаются на экране, также как и модальное название, но не модальное тело, которое отказывается отображаться.
Я хотел бы понять, почему мой модальный заголовок отображается правильно, но не мой модальный контекст, хотя мне кажется, что я использую один и тот же код, чтобы показать их оба.Я думаю, что мне не хватает большой проблемы с привязкой данных.
мой json:
[
{id:1, title: "section title ...", buttons:[
{
id:1,
text:"Button title 1",
paraphs:[
{id:1, content:"paraph1"},
{id:2, content:"paraph2"}
]
},
{id:2, text:"Button title 2"},
{id:3, text:"Button title 3"}
]},
{id:2, title: "Section title 2", buttons:[
{id:1, text:"Button title 1"},
{id:2, text:"Button title 2"},
{id:3, text:"Button title 3"}
]}
]
мой component.html:
<div class="container spacer" >
<div *ngFor="let section of sections">
<div>
<p class="fontPacifico_white">{{section.title}}</p>
</div>
<div style="display:flex; flex-direction: row;justify-content: center; min-height: 250px;">
<button class="section_button" type="button" *ngFor="let button of section.buttons" data-toggle="modal" data-target="#exampleModal" (click)="this.handleClick(button.text, button.paraphs)">{{button.text}}</button>
</div>
</div>
<app-footer></app-footer>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">{{modal_title}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body" ngFor="let paraph of paraphs" *ngIf="!paraphs==undefined">
<p>{{paraph.content}}</p>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
мой component.ts:
import { Component, OnInit } from '@angular/core';
import { PrestationService} from '../service/prestation.service'
@Component({
selector: 'app-prestation',
templateUrl: './prestation.component.html',
styleUrls: ['./prestation.component.css']
})
export class PrestationComponent implements OnInit {
sections;
modal_title;
paraphs;
constructor(private ps:PrestationService) { }
ngOnInit() {
this.ps.getPrestation().subscribe(
data => this.sections = data
)
}
handleClick(buttonTitle, buttonContent){
this.modal_title = buttonTitle;
this.paraphs = buttonContent;
}
}