角度输入[type= "checkbox" ]不会在视图中检查,尽管其值在范围内为真



当我在模态窗口中单击"取消"时,复选框未选中,但必须选中(在按下"取消"按钮并关闭模态窗口后,scope.enabledLogin 为 true)。为什么?

玉:

.checkbox(ng-show="showEnabledLogin", ng-class="{'disabled': (!email.length || userForm.email.$error.email)}")
      label(for="enabledLogin")
        input(ng-show="showEnabledLogin", type="checkbox", id="enabledLogin", name="enabledLogin", ng-model="enabledLogin", ng-disabled="(!email.length || userForm.email.$error.email)", ng-change="showEnabledLoginModal()")
        span Player login enabled

.JS:

scope.isEnabledLoginManuallyUnchecked = false;
function checkIfEnabledLoginManuallyUnchecked() {
        if(scope.isEnabledLoginManuallyUnchecked) {
          scope.showEnabledLogin = false;
          scope.showInviteLogin = true;
          scope.enabledLogin = false;
        } else {
          scope.showEnabledLogin = true;
          scope.showInviteLogin = false;
          scope.enabledLogin = true;
        }
      }
var enabledLoginModal,
                modalScope;
      var isOpened = false;
      scope.showEnabledLoginModal = function () {
        if (isOpened) return;
        if ((scope.email.length || scope.userForm.email.$error.email)) {
          if (scope.enabledLogin) {
              debugger;
            var child = scope.$new();
            var extension = {
              cancel: function (e) {
                scope.isEnabledLoginManuallyUnchecked = false;
                checkIfEnabledLoginManuallyUnchecked();
                enabledLoginModal.dismiss(e);
                isOpened = false;
              },
              modal: {
                title: 'Please confirm'
              }
            };
            modalScope = angular.extend(child, extension);
            var modalOptions = {backdrop: 'static', templateUrl: 'app/player/edit/show-enabled-login-modal.html'};
            enabledLoginModal = Modal.custom(modalOptions, modalScope, 'modal-danger');
            isOpened = true;
            enabledLoginModal.result.then(function (result) {
            });
          }
        }
      }

请在上面的代码中找到它,然后在那里

 cancel: function (e) {
                scope.isEnabledLoginManuallyUnchecked = false;
                checkIfEnabledLoginManuallyUnchecked();
                enabledLoginModal.dismiss(e);
                isOpened = false;
              },

这将在您单击模态的取消按钮后执行,然后您设置

scope.isEnabledLoginManuallyUnchecked = false;

这就是为什么我也会不受检查的原因

因为你叫

enabledLoginModal.dismiss(e);
                isOpened = false;

这些行 当您单击取消时,您的模态关闭。 如果我不清楚,请创建小提琴,以便可以研究更多。

卡贾明

最新更新