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

AngularJS Scope 3

· 8년 전 · 1064
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>

댓글 작성

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

로그인하기

게시글 목록

번호 제목
1236
jQuery Mobile taphold event
1235
jQuery Mobile tap event
1234
jQuery Mobile swiperight event
1233
jQuery Mobile swipeleft event
1232
jQuery Mobile swipe event
1231
jQuery Mobile scrollstop event
1230
jQuery Mobile scrollstart event
1229
jQuery Mobile pageshow event
1228
jQuery Mobile pageremove event
1227
1226
1225
1224
1223
1222
1221
1220
1219
1218
1217
1216
1215
1214
1213
1212
1211
1210
1209
1208
1207