Angularjs 如何在另一个控制器中使用一个控制器

Angularjs 如何在另一个控制器中使用一个控制器,angularjs,Angularjs,我想在另一个控制器中使用一个控制器。我发现我可以使用angular service$控制器 这就是我尝试过的: .controller( 'UnplannedTasksController', [ '$location', '$uibModal', '$controller', 'unplannedTasksService', 'messages', function($location, $uibModal, $controller, unplannedTasksService, messag

我想在另一个控制器中使用一个控制器。我发现我可以使用angular service$控制器

这就是我尝试过的:

.controller(
'UnplannedTasksController',
[
'$location',
'$uibModal',
'$controller',
'unplannedTasksService',
'messages',
function($location, $uibModal, $controller, unplannedTasksService, messages) {
  var ctrl = this;

  var modalInstanceCtrl = $controller('ModalInstanceCtrl');

  this.openModal = function(unplannedTask) {
    var modalInstance = $uibModal.open({
      animation: false,
      templateUrl: 'unplanned-tasks/unplanned-tasks-modal.html',
      controller: modalInstanceCtrl,
      controllerAs: 'mdCtrl',
      size: 'lm',
      resolve: {
        object: function() {
          return unplannedTask;
        },
        title: function() {
          return messages.unplannedTasks.deleteTitle;
        },
        question: function() {
          return messages.unplannedTasks.deleteQuestion + unplannedTask.partner.name;
        }
      }
    });

    modalInstance.result.then(function(unplannedTask) {
      ctrl.display.getUnplannedTasksBusyPromise = unplannedTasksService.removeUnplannedTask(unplannedTask.id).then(function(data) {
        ctrl.searchUnplannedTasks();
      });
    });
  };
}])
此ModalInstanceCtrl位于另一个文件中,如下所示:

.controller('ModalInstanceCtrl', function($modalInstance, object, title, question) {

 var ctrl = this;
 this.object = object;
 this.title = title;
 this.question = question;

 this.ok = function() {
 $modalInstance.close(ctrl.object);
 };

 this.cancel = function() {
 $modalInstance.dismiss('cancel');
 };
 })  
但我得到了一个错误:

"Error: [$injector:unpr] Unknown provider: $modalInstanceProvider <-   $modalInstance <- ModalInstanceCtrl ..."  
“错误:[$injector:unpr]未知提供程序:$modalInstanceProvider根据,您不需要使用
$controller
。您只需以简单字符串的形式告诉
$uibModal
服务的控制器名称即可

就你而言:

var modalInstance = $uibModal.open({
    controller: 'modalInstanceCtrl'
    // + more params
});

您正在将“$modalInstance”注入您的ModalInstanceCtrl。Angular不知道这是什么。您可以在声明“$modalInstance”的位置添加代码吗?谢谢。我不知道它是全局可见的(即使ModalInstanceCtrl是在不同的文件中定义的)。非常感谢。