2017-08-28 179 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; 
       } 
      } 
     }); 
    };