Angular 7 - изменить фоновый div с помощью переключателя

Это 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 прямо в домашнем компоненте, то работало бы нормально, но я хочу сделать раздел новостей в отдельном компоненте.

Спасибо,

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
120
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это может происходить из-за того, что переменная idSelected прикрепляется как истина к каждому элементу div home.component.html *ngFor.

Попробуйте применить *ngFor в news.component.html вместо home.component.html, а также определить переменную contentNews в news.component.ts.

Извините, я запутался, когда создавал вопрос, он у меня был с таким же названием, но все равно не работает

Eladerezador 19.02.2019 17:02

Привет @Eladerezador, я обновил свой ответ, который может решить указанную вами проблему.

Kuldeep 19.02.2019 17:36

Другие вопросы по теме