Проблема в том, что модели отображают только значения, им все равно, остается ли элемент выбранным. Поэтому вам нужно многократно использовать одну и ту же модель, и элементы ввода должны устанавливать разные значения в зависимости от того, что вы выбрали.
Например, вы можете изменить ваши входные данные следующим образом:
<label><input [(ngModel)]="repeats" type="radio" name="repeats" value="2">2</label>
<label><input [(ngModel)]="repeats" type="radio" name="repeats" value="3">3</label>
<label><input [(ngModel)]="repeats" type="radio" name="repeats" value="4">4</label>
<label><input [(ngModel)]="location" type="radio" name="location" value="home">at home</label>
<label><input [(ngModel)]="location" type="radio" name="location" value="gym">in the gym</label>
Первая группа установит для свойства модели repeats
значение 2
, 3
или 4
. Вторая группа установит для свойства модели location
значение home
или gym
.
С помощью этой информации вы можете изменить свои условия:
<tr>
<th scope="row">1</th>
<td *ngIf="repeats == 2 && location == 'home'" (change)="show == !show">{{home[0][0][1]}}</td>
<td *ngIf="repeats == 2 && location == 'home'">{{home[0][0][0]}}</td>
<td *ngIf="repeats == 2 && location == 'home'">{{home[0][1][0]}}</td>
</tr>
В общем, теперь вы проверяете только два свойства repeats
и location
. Когда выбор переключателей изменится, эти два свойства также обновятся, и условия будут пересмотрены.