2016-05-30 43 views
2

我在我的角度應用中使用$ uibmodel。 我需要在一個模態中打開一個新的模態。 bcoz的,我需要注入 '$ uibModal'和'$ uibModalInstance'兩者,在我的控制器之一。 該控制器看起來有點像這樣。 「$ uibModal」和「$ uibModalInstance」在一個控制器需要在模態中使用模態Angularjs

baseController.$inject = ['$uibModal', '$uibModalInstance']; 

function baseController($uibModal, $uibModalInstance) { 

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

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

現在的問題是我得到的consolle錯誤說

Unknown provider: $uibModalInstanceProvider <- $uibModalInstance 

我知道這是因爲注射「$ uibModal」和'$ uibModalInstance'在一個控制器中,但我必須。控制檯中的錯誤Bcoz我無法關閉第二個模式。 告訴我是否有任何方法可以在一個控制器中使用'$ uibModal'和'$ uibModalInstance'。我必須保持這兩個在一個conteroller。

+0

您忘了將控制器分配給第二個模態實例嗎?創建一個重現此操作的plunker演示 – charlietfl

回答

-1

做這樣的事情 -

var modalInstance = $uibModal.open({ 
    animation: true, 
    templateUrl: '../Template/dummy.tpl.html', 
    controller: function($scope, $uibModalInstance) { 
     $scope.Delete = function() { 
      alert('Delete') 
     }; 

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

這不過只是繞過創建一個新的控制器。如果您使用嚴格的di模式,我會建議您創建一個變量並將控制器功能放在那裏,然後像這樣引用它。

...... 
controller: dummyController; 
...... 
var dummyController = function($scope, $uibModalInstance){ 
....... 

}