评估布尔值之前的Angular UI模态加载

时间:2014-04-02 13:56:03

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

我有单选按钮来回答测验中的项目。如果选择单选按钮,则用户然后使用输入键选择下一个按钮以打开模态,允许出现继续模式以评估是否已选择无线电。在用户选择无线电答案并且命中返回布尔值ngApp.Review.Quiz.items[ngApp.currentQuizItem.index].complete;之后的问题在解析属性内部时保持为假,即使它是真的。无论如何将此布尔值传递给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;
    });

 };

};

1 个答案:

答案 0 :(得分:0)

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

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