AngularJS的前缀和$是如何使用的
$
:
AngularJs中的是一个内置的对象。它包含应用数据和方法。
scope()作为控制器和视图之间的链接。
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>
输出:
示例 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>
输出:
$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>
输出:
$$
这里面的$被视为私有变量。我们使用是为了避免内部变量的冲突,而不是为了暴露给外部使用。
其中一些列举如下:-observers, watchers,childHead, childTail,ChildScope等。
方法 | 描述 |
---|---|
$$watchers | 它包含与范围相关的所有手表 |
$$asyncQueue | 这是一个异步任务队列,它在每个摘要中都会被消耗。 |
$$postDigest(fn) | 它在下一个摘要周期后执行fn。 |
$$destroyed | 它破坏了范围。 |
语法:
$$('.selector');
或者,
element.all(by.css('.selector'));
在AngularJS核心功能的帮助下,应用程序模块之间常见的通信方式是使用parent、childHead、$nextSibling在控制器之间建立连接。
示例:
输出: