为什么我得到 undefined

Why I get undefined

我的应用程序包含一个模式,我在其中发送一个变量调用 index。我可以在代码的某些部分完美地访问这个变量,但是在我关闭模态后,我的变量变得未定义。为什么会这样?

$scope.novoCampo = function (index) {
    //Works
    console.log(index);
    var modalInstance = $modal.open({
      animation: $scope.animationsEnabled,
      templateUrl: 'myModalContent.html',
      controller: 'ModalInstanceCtrl',
      size: '',
      resolve: {
        index:  function () {
          return index
        }
      }
    });

    modalInstance.result.then(function (nomeCampo, index) {
      //I can access 'nomeCampo' but 'index' is undefined 
      console.log(nomeCampo + '\t' + index);
    }, function () {
      $log.info('Modal dismissed at: ' + new Date());
    });
  };

  $scope.toggleAnimation = function () {
    $scope.animationsEnabled = !$scope.animationsEnabled;
  };

模态控制器

oknok.controller('ModalInstanceCtrl', function ($scope, $modalInstance, contatosAPI, index){
  $scope.animationsEnabled = true;

  $scope.ok = function () {
    //Works
    console.log('index ' + index);
    $modalInstance.close($scope.nomeCampo, index);
  };

  $scope.cancel = function () {
    $modalInstance.dismiss('cancel');
  };

});

您不能 return 承诺两个项目,只需 return 一个包含您需要的一切的对象,例如:

$modalInstance.close({nomeCampo: $scope.nomeCampo, index: index});

然后在你的控制器中:

modalInstance.result.then(function (result) {
  console.log(result.nomeCampo + '\t' + result.index);
},