У меня есть два переключателя. Я хочу проверить первый переключатель, если ngModel имеет значение X, и если ngModel имеет любое значение, отличное от X, тогда необходимо проверить второй переключатель. Это означает, что второй переключатель не имеет фиксированного значения. Это может быть что угодно, кроме X. Я не могу этого сделать с помощью следующего кода:
<input type="radio" ng-model="color.name" value="x">
<input type="radio" ng-model="color.name" value="">
Поэтому в этом случае, если color.name равно x, то сначала проверяется первое радио, но если color.name не равно x, то ни один из радио не проверяется по умолчанию. Как я могу исправить вторую проблему с переключателем?
<input type="radio" ng-model="color.name" ng-checked="color.name == 'x'" value="x">
<input type="radio" ng-model="color.name" ng-checked="color.name != 'x'" value="">
Я исправил эту проблему с условным ngValue.
В Angular, если ngModel и значение переключателя совпадают, то это радио проверяется. Таким образом, с условным ngValue мы можем получить то, что хотим:
<input type="radio" ng-model="color.name" value="x">
<input type="radio" ng-model="color.name" ng-value="color.name == 'x' ? '' : color.name">
<input type="radio" ng-model="color.name" ng-checked="color.name == 'x'" value="x"> <input type="radio" ng-model="color.name" ng-checked="color.name != 'x'" value="">
. Пока изменилосьcolor.name
изменилось и радио.