欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AngularJS 控制器

程序员文章站 2022-04-11 13:49:09
...

关于 controller 中作用域的问题:

controller 中,如果局部 scoperootScope 都存在,且有相同名字的变量,{{变量名}} 指局部变量而不是全局变量,作用域只有当前 controller;{{root.变量名}} 是全局变量,在 ng-app="" 下任何一个 controller 中都能使用。如果没有scope, 只有 rootScope,那么 {{变量名}} 和 {{root.变量名}} 就没区别了。

<body ng-app="myApp">
        <div ng-controller="myCtrl"> 
            {{first}}<br>                 
            {{$root.first}}<br>           
            {{second}}<br>                
            {{$root.second}}<br>          
        </div>
        <br>
        <br>
        <div ng-controller="myCtrl2">
            {{first}}<br> 
            {{$root.first}}<br> 
            {{second}}<br> 
            {{$root.second}} 
        </div>
    </body>

    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope, $rootScope) {
            $scope.first = 'ctrl局部first';
            $rootScope.first = '全局first';
        });
        app.controller('myCtrl2', function($scope, $rootScope) {
            $scope.second = 'ctrl2局部second';
            $rootScope.second = '全局second';
        });
    </script>

输出结果:
AngularJS 控制器