AngularJs Scope(做用域)

Scope(做用域)是應用在HTML(視圖)和Javascript(控制器)之間的紐帶.javascript

Scope是一個對象,有可用的方法和屬性.java

Scope能夠應用在視圖和控制器上.app

如何使用Scope函數

當你在AngularJs中建立控制器時,你能夠將$scope對象看成一個參數傳遞:spa

    <div ng-app="myApp" ng-controller="myCtrl">
        <h1>{{carname}}</h1>
    </div>
    <script>
        var app = angular.module("myApp",[]);
        app.controller("myCtrl",function($scope){
            $scope.carname = "重走老街";
        })
    </script>

當在控制器中添加$scope對象時,視圖(HTML)就能夠獲取到scope對象的屬性code

視圖中,你不須要添加$scope前綴,只須要添加屬性名便可,如:{{carname}}.對象

Scope概述:blog

AngularJs應用組成以下:ip

1.View (視圖),即HTML;作用域

2.Model(模型),當前視圖可用的數據;

3.Controller(控制器),即javascript函數,能夠添加和修改屬性和方法

4.Scope是模型,是一個javascript對象,有屬性和方法,這些屬性和方法在視圖和控制器中均可以使用。

若是修改了視圖,那麼模型和控制器也會相應更新,案例:

    <div ng-app="myApp" ng-controller="myCtrl">
        <input type="text" ng-model="name">
        <h1>{{greeting}}</h1>
        <button ng-click="sayHello()">點我問候</button>
    </div>
    <script>
        var app = angular.module("myApp",[]);
        app.controller("myCtrl",function($scope){
            $scope.name = "重走老街";
            $scope.sayHello = function () {
                $scope.greeting = "Hello " + $scope.name +"!";
            }
        })
    </script>

Scope的做用範圍:

在大型項目中,HTML DOM中有多個做用域,這是須要知道你是用的scope對應的做用域是哪個。

根做用域

全部的應用都有一個$rootScope,它能夠做用於ng-app指令包含的全部HTML元素中。

$rootScope可做用於整個應用,是各個controller 中scope 的橋樑。用rootScope定義的值,能夠在各個controller中使用。

建立控制器的時候,將$rootScope做爲參數傳遞,可在應用中使用:

<div ng-app="myApp" ng-controller="myCtrl">
        <h1>家族成員</h1>
        <ul>
            <li ng-repeat="x in names">{{x}} {{lastname}}</li>
        </ul>
    </div>
    <script>
        var app = angular.module("myApp",[]);
        app.controller("myCtrl",function($scope,$rootScope){
            $scope.names = ["重走老街","Tobias","Linus"];
            $rootScope.lastname = "Refsnes";
        })
    </script>
相關文章
相關標籤/搜索