> 웹 프론트엔드 > JS 튜토리얼 > AngularJS 컨트롤러_AngularJS 사용에 대한 자세한 설명

AngularJS 컨트롤러_AngularJS 사용에 대한 자세한 설명

WBOY
풀어 주다: 2016-05-16 15:11:13
원래의
1988명이 탐색했습니다.

Angularjs에서 컨트롤러의 역할은 뷰를 향상시키는 것입니다. 실제로 뷰의 범위에 추가 기능을 추가하는 데 사용되는 기능입니다. 범위 객체의 초기 상태를 설정하고 사용자 정의 동작을 추가합니다. .

페이지에 컨트롤러를 만들 때 Angularjs는 $scope를 생성하여 컨트롤러에 전달합니다. Angularjs는 자동으로 컨트롤러를 인스턴스화하므로 생성자만 작성하면 됩니다. 다음 예는 컨트롤러 초기화를 보여줍니다.

function my Controller($scope){
 $scope.msg="hello,world!"; 
}
로그인 후 복사

위의 컨트롤러 생성 방법은 전역 네임스페이스를 오염시킵니다. 보다 합리적인 접근 방식은 다음과 같이 모듈을 생성한 다음 모듈에 컨트롤러를 생성하는 것입니다.

var myApp=angular.module("myApp",[]);
myApp.controller("myController",function($scope){
 $scope.msg="hello,world!";
})
로그인 후 복사

내장된 명령 ng-click을 사용하여 버튼, 링크 및 기타 DOM 요소를 클릭 이벤트에 바인딩합니다. ng-click 지시문은 브라우저의 mouseup 이벤트를 DOM 요소에 설정된 이벤트 핸들러에 바인딩합니다(예를 들어 브라우저가 DOM 요소에서 click 이벤트를 트리거하면 함수가 호출됩니다). 이전 예와 유사하게 바인딩은 다음과 같습니다.

<div ng-controller="FirstController">
<h4>The simplest adding machine ever</h4>
<button ng-click="add(1)" class="button">Add</button>
<a ng-click="subtract(1)" class="button alert">Subtract</a>
<h4>Current count: {{ counter }}</h4>
</div>
로그인 후 복사

버튼과 링크는 내부 $scope의 작업에 바인딩됩니다. AngularJS는 요소를 클릭할 때 해당 메서드를 호출합니다. 호출할 함수를 설정할 때 매개변수(add(1))도 괄호 안에 전달됩니다.

app.controller('FirstController', function($scope) {
$scope.counter = 0;
$scope.add = function(amount) { $scope.counter += amount; };
$scope.subtract = function(amount) { $scope.counter -= amount; };
});
로그인 후 복사

Angularjs와 다른 프레임워크의 가장 큰 차이점은 컨트롤러가 데이터 모델 저장 이외의 DOM 작업, 형식 지정 또는 데이터 작업 및 상태 유지 관리 작업을 수행하는 데 적합하지 않다는 것입니다. 이는 뷰와 $scope 사이의 브리지일 뿐입니다. .

컨트롤러 중첩(범위에 범위 포함)

AngularJS 애플리케이션의 모든 부분은 렌더링되는 컨텍스트에 관계없이 상위 범위를 갖습니다. ng-app이 있는 수준의 경우 상위 범위는 $rootScope입니다.

기본적으로 AngularJS는 현재 범위에서 속성을 찾을 수 없으면 상위 범위에서 속성을 찾습니다. AngularJS가 해당 속성을 찾을 수 없으면 $rootScope에 도달할 때까지 상위 범위를 따라 위쪽으로 검색합니다. $rootScope에서 찾을 수 없으면 프로그램은 계속 실행되지만 보기는 업데이트되지 않습니다.

예시를 통해 이 동작을 살펴보겠습니다. 사용자 개체가 포함된 ParentController를 만든 다음 이 개체를 참조하는 ChildController를 만듭니다.

app.controller('ParentController', function($scope) {
$scope.person = {greeted: false};
});
app.controller('ChildController', function($scope) {
$scope.sayHello = function() {
$scope.person.name = 'Ari Lerner';
};
});
로그인 후 복사

ChildController를 ParentController 안에 배치하면 ChildController의 $scope 개체의 상위 범위는 ParentController의 $scope 개체가 됩니다. 프로토타입 상속 메커니즘에 따라 하위 범위에서 ParentController의 $scope 개체에 액세스할 수 있습니다.

<div ng-controller="ParentController">
<div ng-controller="ChildController">
<a ng-click="sayHello()">Say hello</a>
</div>
{{ person }}
</div>
로그인 후 복사

위 내용은 이 글의 전체 내용입니다. 여러분의 학습에 도움이 되고 AngularJS 컨트롤러에 익숙해지는 데 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿