2015-04-14 38 views
3

我試圖在指令中打開一個Bootstrap UI $模態。它可以工作,但是當我想添加一個'inline'控制器(參見下面代碼中的註釋行)時,我得到一個「[$ injector:unpr]未知提供者:nProvider < - n」錯誤。

有誰能告訴我爲什麼?

angular.module('myApp.directives').directive('eModalForm', ['$modal', function ($modal) { 

    return { 
     restrict: 'A', 
     link: function ($scope, $element, $attrs) { 

     $scope.openModal = function() { 
      console.log('//==//'); 
      var modalInstance = $modal.open({ 

       templateUrl: '/App/Templates/modal.html', 

       // commented these lines to prevent error: 
       //controller: function ($scope, $modalInstance) { 
       // $scope.$modalInstance = $modalInstance; 
       //}, 

       size: 'lg' 

      }); 

     }; 
     } 

    }; 

}]); 

我調用這個函數是這樣的:

<div ng-repeat="item in list" ng-click="openModal(item)" e-modal-form> 

回答

10

控制器依賴性縮小過程中丟失,只需使用擴展語法:

controller: ['$scope', '$modalInstance', function ($scope, $modalInstance) { 
    ... 
}], 
... 
+0

這就是它偏離方向! –

相關問題