如何在指令范围内为$ modal设置'inline'控制器?

San*_*r_P 3 angularjs angular-ui-bootstrap

我正在尝试在指令中打开一个Bootstrap UI $ modal.它可以工作,但是当我想添加一个'内联'控制器(参见下面代码中的注释行)时,我得到一个"[$ 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'

            });

         };
      }

   };

}]);
Run Code Online (Sandbox Code Playgroud)

我这样调用这个函数:

<div ng-repeat="item in list" ng-click="openModal(item)" e-modal-form>
Run Code Online (Sandbox Code Playgroud)

Nik*_*los 12

在缩小期间,控制器依赖性会丢失,只需使用扩展语法:

controller: ['$scope', '$modalInstance', function ($scope, $modalInstance) {
    ...
}],
...
Run Code Online (Sandbox Code Playgroud)