角度模块私人成员

M J*_*M J 7 javascript angularjs angularjs-module

在AngularJS中,是否可以创建私有控制器或服务,这些控制器或服务可以在它们所定义的模块中使用,但不能由它们注入的另一个模块使用.

例如,可以将PrivateController设为私有的Child模块:

angular.module('Child', [])

  .controller('PublicController', function ($scope){
    $scope.children = ['Bob', 'Sue'];

  })

  .controller('PrivateController',function ($scope){
    $scope.redHeadedStepChildren = ['Billy', 'Mildred'];

  })

angular.module('Parent', ['Child'])
Run Code Online (Sandbox Code Playgroud)
<div ng-app="Parent">
    <div ng-controller='PublicController'>
        <div ng-repeat='child in children'>
                 {{child}}
        </div>
    </div>

    <div ng-controller='PrivateController'>
        <div ng-repeat='child in redHeadedStepChildren'>
                 {{child}}
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

pko*_*rce 6

,在当前版本的AngularJS中无法创建"私有"服务.有一些关于支持私有(模块范围)服务的讨论,但没有实现.

截至今天,所有其他模块都可以看到给定模块上公开的所有服务.