【问题标题】:Angular UI Modal loading before boolean is evaluated评估布尔值之前的角度 UI 模态加载
【发布时间】:2014-04-02 13:56:03
【问题描述】:

我有单选按钮来回答测验中的问题。如果选择了单选按钮,则用户使用 Enter 键选择下一个按钮以打开模态,允许出现继续模态以评估单选是否已被选中。在用户选择无线电答案并点击返回布尔值 ngApp.Review.Quiz.items[ngApp.currentQuizItem.index].complete; 后,我的问题在 resolve 属性内仍然为假,即使它是真的。无论如何要将此布尔值传递给 ProceedCtrl 函数,以便可以在 resolve 属性中正确评估它?我不能使用$timeout


modalService.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;
    });

 };
    
};

【问题讨论】:

  • 解决后你在哪里通过回答不是很清楚,你能对你的应用做一个小提琴或一个笨蛋吗?

标签: javascript angularjs angular-ui angular-ui-bootstrap


【解决方案1】:

您可以像这样将它作为控制器范围的一部分传递:

$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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-28
    • 2012-06-04
    • 2014-01-24
    • 2011-07-31
    • 2012-11-22
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多