2017-08-28 134 views
1

如何在模态内部打开模态?我遵循这个plnkr,但当我点击第二个模式的确认按钮时出现错误。这是错误:模态内的角引导模态

Error: [$injector:unpr]

这是我的第一模

$scope.edit = function(data) { 
     var modalInstance = $uibModal.open({ 
      templateUrl: "/wp-content/themes/copywriter-theme/angular-modal-template/management_modal.html", 
      controller: 'managementModal', 
      resolve: { 
       items: function() { 
        return data; 
       } 
      } 
     }); 
} 

这是我的第二个模式

angular.module(['ui.bootstrap']).controller('managementModal',['$scope','$http','$uibModalInstance','$uibModal','items',function($scope, $http, $uibModalInstance, $uibModal, items){ 
    $scope.names = items; 
    $scope.editable = items; 

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

    $scope.confirm = function(){ 
     console.log("clicked"); 
     $uibModalInstance.close($scope.editable); 
    } 

    $scope.update = function(){ 
     var template_modal = "<div class='modal-body'>" + 
           "<button type='button' class='close' ng-click='confirm()'>update</button>" + 
           "<button type='button' class='close' ng-click='cancel()'>cancel</button>" + 
          "</div>"; 
     var modalInstance = $uibModal.open({ 
      template: template_modal, 
      controller: 'managementModal' 
     }); 
    }; 
}]); 

所以第一个模式是在另一个控制器,而第二个模式是内的控制器managementModal。但在plnkr它没关系点击按钮和它的工作我不知道为什么我的第二个模式的按钮不起作用

+0

它可以在你的开发环境或缩小它后测试 –

+0

此外,如果它在Plunker中工作 - 我们无法帮到你。在你的项目中寻找问题 –

+0

@MaximShoustin nope它在我的开发中不起作用 –

回答

0

我得到了答案是我需要再次申报items所以在我的第二个模式,这应该是代码

$scope.update = function(){ 
     var template_modal = "<div class='modal-body'>" + 
           "<button type='button' class='close' ng-click='confirm()'>update</button>" + 
           "<button type='button' class='close' ng-click='cancel()'>cancel</button>" + 
          "</div>"; 
     var modalInstance = $uibModal.open({ 
      template: template_modal, 
      controller: 'managementModal', 
      //added code 
      resolve: { 
       items: function() { 
        return items; 
       } 
      } 
     }); 
    };