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>
相关文章
相关标签/搜索