AngularJS:从同一模块中的另一个控制器内部注入控制器

Jos*_*man 17 javascript dependency-injection angularjs angularjs-scope angularjs-controller

是否可以将控制器注入另一个属于同一模块的控制器?

例:

var app = angular.module('myAppModule', [])
.controller('controllerOne', ['$scope', function($scope){
  $scope.helloWorld = function(){
    return 'Hello World';
  }
}])
.controller('controllerTwo', ['$scope', 'controllerOne', function($scope, controllerOne){
  console.log(controllerOne.helloWorld());
}])
Run Code Online (Sandbox Code Playgroud)

我一直在controllerOne上得到未知的提供者.我不知道它是如何可能的,因为它们在同一个模块中共存.任何帮助将非常感激.

Pan*_*kar 25

您需要使用$controller依赖关系,您可以将一个控制器注入另一个控制器

.controller('controllerTwo', ['$scope', '$controller', function($scope, $controller){
  $controller('controllerOne', {$scope: $scope})
  //inside scope you the controllerOne scope will available
}]);
Run Code Online (Sandbox Code Playgroud)

但更喜欢service/factory分享数据

  • "但更喜欢服务/工厂共享数据".是! 是! 是! (8认同)