将角度模态控制器移动到单独的文件中

时间:2016-04-01 15:22:22

标签: angularjs controller

我的网站上有一个包含多个模态的页面控制器。一些模态控制器变得越来越强大,我想将它们移动到单独的控制器中而不会丢失外部页面控制器的范围(模态控制器使用一些页面控制器功能和属性) - 这可能吗?到目前为止,我收到任何引用外部控制器的错误。这是一个如何设置它的简单示例:

页面控制器:

angular.module('myApp')
.controller('outerCtrl', function(MetaService) {
    var thisCtrl = this;

    thisCtrl.someFunction = function() {
        //some cool functionality that will elvaluate something
    }

    function optionsModal() {
        var PageCtrl = thisCtrl;

        $uibModal.open({
            'controller': 'scripts/controllers/optionsModal.js',
            'controllerAs': 'ModalCtrl',
            'templateUrl': 'views/modals/optionsModal.html',
            'size': 'md'            
        });
    }   
});

模态控制器:

angular.module('myApp')
.controller('optionsModalCtrl', function(MetaService) {
    var modalCtrl = this;

    function giveOptions() {
        if (PageCtrl.someFunction()) {
            //offer some option
        } else {
            //offer a different option
        }   
    }

});

1 个答案:

答案 0 :(得分:0)

以下是官方网页的example

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