AngularJS的前缀$和$$是如何使用的

AngularJS的前缀$是如何使用的

  • $:

AngularJs中的是一个内置的对象。它包含应用数据和方法。

scope()作为控制器和视图之间的链接。

AngularJS的前缀$和$$是如何使用的

Scope($)

在控制器函数中,可以将属性和方法附加到范围($)。表达式,ng-model,或ng-bind指令可以用来在视图中显示范围数据。

<!DOCTYPE html>
<html>
<head>
    <script src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js">
    </script>
</head>
<body ng-app="Ng">
<h1>scope</h1>
    <div ng-controller="myController">
        Message: <br />
        {{message}}<br />
        <span ng-bind="message"></span> <br />
        <input type="text" ng-model="message" /> 
    </div>
    <script>
        var ngApp = angular.module('Ng', []);
  
        ngApp.controller('myController', function (scope) {
            $scope.message = "GFG!";        
        });
    </script>
</body>
</html>

输出:
AngularJS的前缀$和$$是如何使用的

示例 2:

<!DOCTYPE html>
<html>
    <script src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js">
  </script>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl">
            First Name: <input type="text" 
                               ng-model="firstName" /><br />
            Middle Name: <input type="text" 
                                ng-model="middleName" /><br />
            Last Name: <input type="text" 
                              ng-model="lastName" /><br />
            <br />
         Full Name: {{firstName +middleName+ " " + lastName}}
        </div>
  
        <script>
            var app = angular.module("myApp", []);
            app.controller("myCtrl", function (scope) {
                scope.firstName = "Geeks";
                scope.middleName = "for";
                scope.lastName = "Geeks";
            });
        </script>
    </body>
</html>

输出:
AngularJS的前缀$和$$是如何使用的

$rootScope:

AngularJS应用程序由一个单一的rootScope组成。所有其他的scope都是子对象。$rootscope有附加的属性和方法,所有的控制器都可以使用。

方法 描述
$new 它用于创建新的子范围。
$watch 它用于注册一个回调,当模型属性发生变化时,回调将被执行。
$watchGroup 它被用来注册一个回调,当模型属性发生变化时,该回调将被执行。我们在此指定一个属性数组。
$watchCollection 它用于注册一个回调,当模型对象或数组属性发生变化时,该回调将被执行。
$digest 它处理当前范围及其子对象的所有观察者。
$destroy 从父作用域中删除当前作用域。
$eval 在当前范围内执行表达式。
$emit 它用于向上派发指定的事件,直到$rootScope。
$broadcast 它用于向下派发指定的事件,直到子范围。

示例 3:

<!DOCTYPE html>
<html>
<head>
    <script src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js">
   </script>
</head>
<body ng-app="Ng">
<h1> watch </h1>
    <div ng-controller="Controller">
        Enter Message: <input type="text" ng-model="message" /> <br />
        New : {{newMessage}} <br />
        Old : {{oldMessage}} 
    </div>
    <script>
        var ngApp = angular.module('Ng', []);
      
        ngApp.controller('Controller', function (scope) {
            scope.message = "GFG!";
  
            scope.watch('message', function (newValue, oldValue) {
                scope.newMessage = newValue;
                $scope.oldMessage = oldValue;
            });
        });
    </script>
</body>
</html>

输出:
AngularJS的前缀$和$$是如何使用的

  • $$

这里面的$被视为私有变量。我们使用是为了避免内部变量的冲突,而不是为了暴露给外部使用。

其中一些列举如下:-observers, watchers,childHead, childTail,ChildScope等。

方法 描述
$$watchers 它包含与范围相关的所有手表
$$asyncQueue 这是一个异步任务队列,它在每个摘要中都会被消耗。
$$postDigest(fn) 它在下一个摘要周期后执行fn。
$$destroyed 它破坏了范围。

语法:

$$('.selector');

或者,

element.all(by.css('.selector'));

在AngularJS核心功能的帮助下,应用程序模块之间常见的通信方式是使用parent、childHead、$nextSibling在控制器之间建立连接。

示例:

输出:
AngularJS的前缀$和$$是如何使用的

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程