angular中$scope作用域和繼承關係解析

ITzhongzi發表於2017-03-31

作用域( scope )
表示的就是 ng 介面背後的那個物件
在 ng 中 凡是使用了 ng-app, 或 ng-controller 在背後都會建立一個 scope,
用於維護當前程式碼結構中的資料.

多個 scope 之間按照 標籤的層級關係依照原型繼承的結構組織物件.
其中 $rootScope 是所有 scope 物件的根.

例如:
    <body ng-app>               表明在標籤背後有一個 $rootScope 存在
    </body>



    <body ng-app="mainApp" ng-controller="mainController">
    </body>

    在背後有兩個物件, 一個是 ng-app 維護的 $rootScope, 
    一個是 ng-controller 維護的 $scope.
    它們的關係是 $scope 原型繼承自 $rootScope.



    <body ng-app="mainApp">
        <div ng-controller="controllerA"></div>
        <div ng-controller="controllerB"></div>
    </body> 

    #以上表示式中有三個scope物件, ng-app維護了一個$rootScope根scope物件,
    #一個是由controllerA維護的區域性$scope物件
    #一個是由controllerA維護的區域性$scope物件
    #其中 controllerA和controllerA維護的$scope物件通過原型繼承自根$rootScope物件



    <body ng-app="mainApp">
        <div ng-controller="controllerA">
            <div ng-controller="controllerC"></div>
        </div>
        <div ng-controller="controllerB"></div>
    </body> 

    #以上表示式中有四個scope物件, ng-app維護了一個$rootScope根scope物件,
    #一個是由controllerA維護的區域性$scope物件
    #一個由controllerC維護的$scope物件,這個$scope物件通過原型繼承自controllerA維護的$scope物件
    #一個是由controllerA維護的區域性$scope物件
    #其中 controllerA和controllerA維護的$scope物件通過原型繼承自根$rootScope物件

相關文章