角度 UI 在计算布尔值之前进行模态加载

Angular UI Modal loading before boolean is evaluated

本文关键字:模态 加载 UI 计算 布尔值 角度      更新时间:2023-09-26

我有单选按钮来回答测验中的项目。如果选择了单选按钮,则用户将使用 Enter 键选择下一个按钮以打开模式,允许继续模式显示以评估是否已选择单选。用户选择无线电答案并点击返回布尔ngApp.Review.Quiz.items[ngApp.currentQuizItem.index].complete;后的问题在 resolve 属性内时保持 false,即使它是真的。是否有任何方法将此布尔值传递给 ProceedCtrl 函数,以便可以在 resolve 属性中正确计算它?我不能使用$timeout.

<小时 />

模态服务.js

//Proceed Modal
var ModalProceedCtrl = function ($scope, $modalInstance, answered) {
    $scope.answered = answered;
    $scope.proceedOk = function () {
        $modalInstance.close();
    };
    $scope.proceedCancel = function () {
        $modalInstance.dismiss();
    };
  };
  var ProceedCtrl = function ($scope, $modal) {
    
      $scope.open = function () {
        var modalInstance = $modal.open({
        templateUrl: 'proceedModal',
        controller: ModalProceedCtrl,
        backdrop: 'static',
        resolve: {
          answered: function() {
             return ngApp.Review.Quiz.items[ngApp.currentQuizItem.index].complete;
          }
        }
     });
        modalInstance.result.then(function () {
          $scope.doProceed();
          return false;
        }, function () {
            return false;
    });
 };
    
};

您可以将其作为控制器范围的一部分传递,如下所示:

$scope.open = function () {
    var modalInstance = $modal.open({
    templateUrl: 'proceedModal',
    controller: ModalProceedCtrl,
    backdrop: 'static',
    scope: angular.extend($rootScope.$new(false), {
        answered: ngApp.Review.Quiz.items[ngApp.currentQuizItem.index].complete;
    }
}