ModalInstanceCtrl给出此错误的最常见原因是什么?

时间:2015-05-23 05:04:22

标签: javascript angularjs

我正在尝试连接一个Angular Bootstrap模式(弹出窗口),但是它给了我" templateUrl"未找到错误或此错误:错误:[ng:areq] http://errors.angularjs.org/1.3.15/ng/areq?p0=ModalInstanceCtrl&p1=not%20a%20function%2C%20got%20undefined

我只想要一些理论上的建议来解释为什么会这样。我已经尝试了很多东西:它们都已正确连接,所有拼写匹配等等。

$ modal也在控制器中用于其他功能,所以它都被注入。

2 个答案:

答案 0 :(得分:2)

Angular Documents提供了一个建议,当您收到此错误时,可能会将控制器注入另一个控制器。这正是我试图添加模态作为他们的盒子解决方案所发生的事情:

angular.module('ui.bootstrap.demo').controller('ModalDemoCtrl', function ($scope, $modal, $log) {

  $scope.items = ['item1', 'item2', 'item3'];

  $scope.animationsEnabled = true;

  $scope.open = function (size) {

    var modalInstance = $modal.open({
      animation: $scope.animationsEnabled,
      templateUrl: 'myModalContent.html',
      controller: 'ModalInstanceCtrl',
      size: size,
      resolve: {
        items: function () {
          return $scope.items;
        }
      }
    });

    modalInstance.result.then(function (selectedItem) {
      $scope.selected = selectedItem;
    }, function () {
      $log.info('Modal dismissed at: ' + new Date());
    });
  };

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

});

控制器:'ModalInstanceCtrl'如果要将其添加到现有控制器中,必须从模态函数中删除,否则它将全部转到......你知道在哪里。

答案 1 :(得分:0)

可以像模块上不存在的控制器一样简单。

我忘了添加模态控制器的代码:(当我第一次在我的项目中尝试它时

这个控制器在我的项目中大约有3个控制器(确保你使用"控制器 AS cntlr"样式)所以嵌入对我来说不是问题。

angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($scope, $uibModalInstance, items) {
    $scope.items = items;
    $scope.selected = {
        item: $scope.items[0]
    };

    $scope.ok = function () {
        $uibModalInstance.close($scope.selected.item);
    };

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