Подтвердите btn-радио кнопку при нажатии

0

Я использую Angle UI btn-radio директиву, чтобы показать две разные кнопки:

<label class="btn btn-default" ng-model="mode" ng-change="toggleMode()" btn-radio="'Mode1'">Mode1</label>
<label class="btn btn-default"  ng-model="mode" ng-change="toggleMode()" btn-radio="'Mode2'">Mode2</label>

И это хорошо работает, однако я хочу ввести некоторую проверку, чтобы при нажатии одной из этих кнопок они активировались, только если проверка прошла. Например, если я нажму на Mode2, эта кнопка будет активна только в том случае, если выполнено какое-либо условие. Проблема в том, что по умолчанию active класс добавляется при каждом нажатии, а директива btn-radio сохраняет состояние active. Есть ли способ обойти это?

Теги:
angularjs-directive

1 ответ

0

Вы можете посмотреть мой ответ в этом плунжере

Я просто удалил "ng-model", сделал свое собственное условие, чтобы добавить "активное" на кнопку и создал пользовательский клик, который будет проверять состояние перед переключением.

  <div class="btn-group">
    <label class="btn btn-default" ng-class="{active:mode==='Mode1'}" ng-click="activateMode('Mode1')">Mode1</label>
    <label class="btn btn-default" ng-class="{active:mode==='Mode2'}" ng-click="activateMode('Mode2')">Mode2</label>
  </div>

И функция activateMode:

 $scope.activateMode = function(modeName){
   //I don't allow to switch mode if the checkbox isn't checked.
   if($scope.changeMode){
     $scope.mode = modeName;
   }
 }

Надеюсь, это помогло.

  • 0
    @Zed, ты пробовал мое решение?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню