Это HTML-код (home.component.html):
<form #fNews = "ngForm">
<app-news *ngFor = "let data of contentNews" [data] = "data"></app-news>
</form>
Это код ts (home.component.ts)
this.contentNews = [
{
"idcontentnew":1,
"title":"Productos"
},
{
"idcontentnew":2,
"title":"Servicios"
}
];
Это html-код (news.component.html)
<div class = "row">
<div class = "col-md-12 col-xl-12 col-sm-12" [ngClass] = "{'divSelected': data.idcontentnew == idSelected}">
<div class = "form-group">
<input type = "radio" id = "inputIdNew{{data.idcontentnew}}" name = "inputIdNew" (click) = "selected(data.idcontentnew);" [(ngModel)] = "inputIdNew" [value] = "data.idcontentnew" /> <label for = "id">Select new</label>
</div>
<div class = "form-group">
<input id = "inputTitle{{data.idcontentnew}}" name = "inputTitle{{data.idcontentnew}}" type = "text" value = "{{data.title}}" />
</div>
</div>
</div>
Это код ts (news.component.ts)
@Input("data") data: any;
idSelected: any;
constructor() {
this.idSelected = null;
}
selected(idSelected: number) {
this.idSelected = idSelected;
}
Моя проблема в том, что мне нужно только отметить и изменить фон выбранного div. Теперь, если я выберу все переключатели, фон всех элементов div будет изменен.
Если бы я делал это с ngFor прямо в домашнем компоненте, то работало бы нормально, но я хочу сделать раздел новостей в отдельном компоненте.
Спасибо,





Это может происходить из-за того, что переменная idSelected прикрепляется как истина к каждому элементу div home.component.html *ngFor.
Попробуйте применить *ngFor в news.component.html вместо home.component.html, а также определить переменную contentNews в news.component.ts.
Привет @Eladerezador, я обновил свой ответ, который может решить указанную вами проблему.
Извините, я запутался, когда создавал вопрос, он у меня был с таким же названием, но все равно не работает