AngularJS中的范围是HTML视图和JavaScript控制器的绑定部分。当你将属性添加到JavaScript控制器中的作用域对象中时, 只有HTML视图可以访问这些属性。 AngulerJS中有两种类型的范围。
- $Scope
- $rootScope
- HTML视图
- 当前视图(称为模型)可用的数据
- 制作/更改/删除/控制数据的JavaScript函数称为Controller。
$scope
范例1:此示例将更清楚地说明范围概念, 此示例包含单个范围。
<
!DOCTYPE html>
<
html >
<
head >
<
title >
AngularJS | Scope
<
/ title >
<
script src =
"https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js" >
<
/ script >
<
/ head >
<
body >
<
div ng-app = "gfg" ng-controller = "control" align = "center" >
<
h1 style = "color:green;
" >
{{organization}}<
/ h1 >
<
p >
A Computer Science Portal<
/ p >
<
/ div >
<
script >
var geeks = angular.module('gfg', []);
geeks.controller('control', function($scope) {
$scope.organization = "lsbin";
});
<
/ script >
<
/ body >
<
/ html >
输出如下:
文章图片
范例2:在上面的示例中, 在下面的示例中只有一个范围, 你将看到多个范围。
<
!DOCTYPE html>
<
html >
<
head >
<
title >
AngularJS | Scope
<
/ title >
<
script src =
"https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js" >
<
/ script >
<
/ head >
<
body >
<
div ng-app = "gfg" ng-controller = "control" >
<
ul >
<
li ng-repeat = "x in names" >
{{x}}<
/ li >
<
/ ul >
<
/ div >
<
script >
var geeks = angular.module('gfg', []);
geeks.controller('control', function($scope) {
$scope.names = ["Python", "Machine Learning", "Artificial Inteligence"];
});
<
/ script >
<
/ body >
<
/ html >
输出如下:
文章图片
rootScope:
如果变量在rootscope和当前作用域中都包含相同的名称, 则控制器或应用程序将使用当前作用域。
语法如下:
$rootScope
范例3:本示例将向你展示如果变量名称在控制器范围和rootscope中相同, 将会发生什么。
<
!DOCTYPE html>
<
html >
<
head >
<
title >
AngularJS | Scope
<
/ title >
<
script src =
"https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js" >
<
/ script >
<
/ head >
<
body ng-app = "gfg" >
<
h1 >
lsbin<
/ h1 >
<
p >
Jack and Jones<
/ p >
<
h3 >
{{relation}}<
/ h3 >
<
div ng-controller = "control" >
<
p >
Akbar and Antony <
/ p >
<
h3 >
{{relation}}<
/ h3 >
<
/ div >
<
p >
Jay and Viru<
/ p >
<
h3 >
{{relation}}<
/ h3 >
<
script >
var geeks = angular.module('gfg', []);
geeks.run(function($rootScope) {
$rootScope.relation = 'friend';
});
geeks.controller('control', function($scope) {
$scope.relation = "brothers";
});
<
/ script >
<
/ body >
<
/ html >
输出如下:
文章图片
推荐阅读
- PHP Ds Queue peek()函数用法介绍
- Python程序查找列表中的最小数字
- webpack babel-loader将jsx转换为js错误(build failed SyntaxError ~main.js Unexpected token)
- webpack和babel出错(You may need an appropriate loader to handle this file type.)
- webpack和babel项目使用ES6装饰器错误(Decorators are not supported yet in 6.x pending proposal update.)
- AdSense申请失败解决办法(我们发现,您还有一个 AdSense 帐号。每位用户只能拥有一个帐号。要使用此帐号,请关闭另一个帐号。)
- JS如何实现二叉堆(JavaScript实现最小二叉堆和优先队列)
- JavaScript常用数据结构之线性表(数组和链表)
- 数组和链表有什么区别(哪个更快?有什么优缺点?有哪些应用场景?)