2-1.Angular-控制器作用域

控制作用域:

  • 通常AngularJS中应用(App)是由若干个视图(View)组合成而成的,而视图(View)又都是HTML元素,并且HTML元素是可以互相嵌套的,另一方面视图都隶属于某个控制器(Controller),进而控制器之间也必然会产生嵌套关系。
  • 每个控制器(Controller)又都对应一个模型(Model)也就是$scope对象,不同层级控制器(Controller)下的$scope便产生了作用域。

子作用域

  • 通过ng-controller指令可以创建一个子作用域,新建的作用域可以访问其父作用域的数据。
  1. 先找自己属性,再去找父级属性.如果父级没有,则为空.
  2. 子级可以访问父级的元素.
  3. 父级不能访问子级的元素.

根作用域 $rootScope

  • 一个angular的应用(app)在启动时会创建一个根作用域 $rootScope.
  • 这个根作用域在整个应用范围(ng-app 所在标签以内)都是可以被访问到的.
  • ng-init 初始化全局变量
  • 使用 ng-init="属性名称 = 属性值" , 创建一个根作用域.

<!--绑定模块-->
<body ng-app="app" ng-init="name='xmg' ">

<!--绑定控制器father-->
<div ng-controller="fatherController">

    <p>{{name}}</p>

    <!--绑定控制器1-->
    <div ng-controller="xmgController">
        <p>{{name}}</p>
    </div>

    <!--绑定控制器2-->
    <div ng-controller="xmgController2">
        <p>{{name}}</p>
    </div>

</div>

</body>

<script src="js/angular.js"></script>
<script>
    //1.创建模块
    var app = angular.module('app', []);

    //2.创建控制器father
    app.controller('fatherController', ['$scope', function ($scope) {
//        $scope.name = "father";
    }]);

    //3.创建控制器1
    app.controller('xmgController', ['$scope', function ($scope) {
//        $scope.name = "SK111";

    }]);

    //4.创建控制器2
    app.controller('xmgController2', ['$scope', function ($scope) {
        $scope.name = "SK222";

    }]);

    //3.绑定模块 ng-app="app"
    //4.绑定控制器 ng-controller="xmgController"

</script>


1.创建控制器1,控制器2,并绑定

2.创建控制器father ,并绑定

3.去掉控制器2 , name

4.父级添加p标签, 注释父级属性

<p>{{name}}</p>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容