테스트 사이트 - 개발 중인 베타 버전입니다

AngularJS Scope 3

· 8년 전 · 1067
AngularJS Scope

범위는 HTML (보기)와 JavaScript (컨트롤러) 간의 바인딩 부분입니다.

범위는 사용 가능한 속성 및 메서드가있는 객체입니다.

범위는 뷰와 컨트롤러 모두에서 사용할 수 있습니다.


귀하의 범위를 아십시오.
언제든지 어떤 범위를 다루고 있는지 파악하는 것이 중요합니다.

위의 두 예제에는 하나의 범위 만 있으므로 범위를 아는 것은 문제가되지 않지만 큰 응용 프로그램의 경우 HTML DOM에 특정 범위에만 액세스 할 수있는 섹션이있을 수 있습니다.



ng-repeat지시어를 처리 할 때 각 반복은 현재 반복 객체에 액세스 할 수 있습니다

<div ng-app="myApp" ng-controller="myCtrl">

<ul>
<li ng-repeat="x in names">{{x}}</li>
</ul>

</div>

<script>
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
$scope.names = ["Emil", "Tobias", "Linus"];
});
</script>

전체소스
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">

<ul>
<li ng-repeat="x in names">{{x}}</li>
</ul>

</div>

<script>
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
$scope.names = ["Emil", "Tobias", "Linus"];
});
</script>

<p>The variable "x" has a different value for each repetition, proving that each repetition has its own scope.</p>

</body>
</html>

각 <li>요소는 현재 반복 객체에 액세스 할 수 있습니다.이 경우에는 using으로 참조되는 문자열 x입니다.


루트 범위
모든 응용 프로그램에는 지시문 $rootScope이 포함 된 HTML 요소에서 작성된 범위가 있습니다 ng-app.

rootScope는 전체 응용 프로그램에서 사용할 수 있습니다.

변수가 현재 범위와 rootScope에서 동일한 이름을 갖는 경우 응용 프로그램은 현재 범위에있는 변수를 사용합니다.


"color"라는 변수는 컨트롤러 범위와 rootScope에 존재합니다 :

<body ng-app="myApp">

<p>The rootScope's favorite color:</p>
<h1>{{color}}</h1>

<div ng-controller="myCtrl">
<p>The scope of the controller's favorite color:</p>
<h1>{{color}}</h1>
</div>

<p>The rootScope's favorite color is still:</p>
<h1>{{color}}</h1>

<script>
var app = angular.module('myApp', []);
app.run(function($rootScope) {
$rootScope.color = 'blue';
});
app.controller('myCtrl', function($scope) {
$scope.color = "red";
});
</script>
</body>

전체소스
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body ng-app="myApp">

<p>The rootScope's favorite color:</p>
<h1>{{color}}</h1>

<div ng-controller="myCtrl">

<p>The scope of the controller's favorite color:</p>
<h1>{{color}}</h1>

</div>

<p>The rootScope's favorite color is still:</p>
<h1>{{color}}</h1>

<script>
var app = angular.module('myApp', []);
app.run(function($rootScope) {
$rootScope.color = 'blue';
});
app.controller('myCtrl', function($scope) {
$scope.color = "red";
});
</script>

<p>Notice that controller's color variable does not overwrite the rootScope's color value.</p>

</body>
</html>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
1356
1355
1354
1353
1352
1351
1350
1349
1348
1347
1346
1345
1344
1343
1342
1341
1340
1339
1338
1337
1336
1335
1334
1333
1332
1331
1330
1329
1328
1327