当我在模态窗口中单击"取消"时,复选框未选中,但必须选中(在按下"取消"按钮并关闭模态窗口后,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;
这些行 当您单击取消时,您的模态关闭。 如果我不清楚,请创建小提琴,以便可以研究更多。