Страницы

Поиск по вопросам

суббота, 13 июля 2019 г.

Angularjs. Radiobutton по умолчанию

Код шаблона:

{{"DICTIONARY.CHOOSE_METER_VALUE" | translate }}

{{mUnit.id | json}}


Кусок из контроллера:
$scope.meterUnits = [{id:'GC'},{id:'KW'},{id:'MW'},{id:'GJ'}]; $scope.mUnit = [];
Необходимо что бы по умолчанию была активна первая кнопка(GC). Пробовал сделать $scope.mUnit = [{id:'GC'}]; не помогло. Какие еще варианты?
В итоге получилось

Контроллер
$scope.meterUnits = ['GC','KW','MW','GJ']; $scope.mUnit = 'GC'; $scope.calculateMeters = function(meters, meterUnit) { if(meterUnit === 'GC'){ console.log('GC');//TODO: delete } if(meterUnit === 'KW'){ console.log('KW');//TODO: delete } if(meterUnit === 'MW'){ console.log('MW');//TODO: delete } if(meterUnit === 'GJ'){ console.log('GJ');//TODO: delete } }
Вопрос. Почему когда стояло ng-change событие срабатывало только при первых нажатиях на кнопки? когда нажимал второй раз(повторно на ту же кнопку), больше не срабатывало. ng-change срабатывает только когда есть изменения? Почему оно не считает каждый следующий клик, изменением?


Ответ

$scope.mUnit.id должен содержать значение из ng-value т.е. получаем:
$scope.mUnit = {id:'GC'};
или для универсальности:
$scope.mUnit = {id: $scope.meterUnits[0].id};
Вариант второй
Изменяем html:

в js
$scope.meterUnits = [{id:'GC'},{id:'KW'},{id:'MW'},{id:'GJ'}]; $scope.mUnit = $scope.meterUnits[0];

Комментариев нет:

Отправить комментарий