Флажок, не меняющий состояние в Angular UI Modal

0

В этом plunk у меня есть модальное окно с угловым пользовательским интерфейсом с кнопкой флажка.

Проблема в том, что флажок не меняет свое состояние при нажатии.

Попробуйте нажать кнопку несколько раз, вы увидите предупреждение, показывающее состояние, которое никогда не изменяется. Как это исправить?

Javascript:

var app = angular.module('app', ['ui.bootstrap']);
app.controller('ctl', function ($scope,$uibModal) {
});


app.directive('buttondir', function ($uibModal) {

    var directive = {};

    directive.restrict = 'EA';

    directive.scope = true;

    directive.templateUrl = "buttondir.html"

    directive.link = function (scope, element, attrs) {


      scope.modalInstance = $uibModal.open({
          templateUrl: 'myModalContent.html',
          scope: scope,
          windowClass: 'app-modal'
        }); 

      scope.singleModel = 1;

      scope.onclick = function(){
        alert(scope.singleModel)
      };
    };



    return directive;

});

HTML:

<script type="text/ng-template" id="myModalContent.html">

  <div class="modal-header">
      <h4 class="modal-title">The Title</h4>
  </div>

     <button type="button" class="btn btn-primary" ng-model="singleModel" uib-btn-checkbox
         btn-checkbox-true="1" btn-checkbox-false="0" ng-click="onclick()"> Single Toggle </button>

</script>
Теги:
angular-ui
angular-ui-bootstrap

1 ответ

2
Лучший ответ

Никогда не назначайте ngModel напрямую в $scope.

Всегда всегда используйте Dot Rule или controller-as-syntax.

scope.model = {};
scope.model.singleModel = 1;

scope.onclick = function() {
  alert(scope.model.singleModel)
};

<button type="button" class="btn btn-primary" ng-model="model.singleModel" uib-btn-checkbox btn-checkbox-true="1" btn-checkbox-false="0" ng-click="onclick()"> Single Toggle </button>

DEMO

Ещё вопросы

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