角度模态传递从一个控制器到另一个控制器的参数

Sar*_*ild 2 modal-dialog angularjs angular-ui-bootstrap

我必须将几个参数放到模态的控制器上,这样我就可以显示模态中的某些值[uts in the modal

var app = angular.module('myApp', ['ui.bootstrap']);
   app.controller('ctrlTags', function($scope, $uibModal, $log){
//        $scope.items = tagsData;
       $scope.data = {
           repeatSelect: null,
           availableOptions: [
               {id: '1', name: 'Option A'},
               {id: '2', name: 'Option B'},
               {id: '3', name: 'Option C'}
           ],
       };
        $scope.myVar = false;
        $scope.show = function () {
            $scope.myVar = false;
        }
        $scope.hide = function () {
            $scope.myVar = true;
        }
       $scope.open = function() {
           var modalInstance = $uibModal.open({
               templateUrl: 'myModl.html',
               controller: 'ModalInstanceCtrl',
               resolve: {
                   param: function () {
                       $log.log($scope.dt)
                       return $scope.data;
                   }
               }
           });
       };
   $scope.ok = function() {
       $scope.showModal = false;
   };

   $scope.cancel = function() {
       $scope.showModal = false;
   };
});
Run Code Online (Sandbox Code Playgroud)

模态的控制器:

   app.controller('ModalInstanceCtrl', function($scope, $modalInstance, param) {

//        $scope.inputValue = param;
        $scope.data = param

        $scope.ok = function() {
            $modalInstance.close();
        };

        $scope.cancel = function() {
            $modalInstance.dismiss('cancel');
        };
    });
Run Code Online (Sandbox Code Playgroud)

我必须显示除数据以外的更多值.如何将更多参数传递给模态控制器?

Mah*_*mar 8

您可以在resovle函数中传递多个数据.

 $scope.open = function() {
           var modalInstance = $uibModal.open({
               templateUrl: 'myModl.html',
               controller: 'ModalInstanceCtrl',
               resolve: {
                   param: function () {
                       $log.log($scope.dt)
                       return {'data':$scope.data,'yourData' : yourData };
                   }
               }
           });
       };


app.controller('ModalInstanceCtrl', function($scope, $modalInstance, param) {

//        $scope.inputValue = param.data;
        $scope.data = param.data;
        $scope.yourData = param.yourData;    
        $scope.ok = function() {
            $modalInstance.close();
        };

        $scope.cancel = function() {
            $modalInstance.dismiss('cancel');
        };
    });
Run Code Online (Sandbox Code Playgroud)