AngularJS-컨트롤러

AngularJS 애플리케이션은 주로 컨트롤러에 의존하여 애플리케이션의 데이터 흐름을 제어합니다. 컨트롤러는 ng-controller 지시문을 사용하여 정의됩니다 . 컨트롤러는 속성 / 속성 및 함수를 포함하는 JavaScript 개체입니다. 각 컨트롤러는 컨트롤러가 처리해야하는 응용 프로그램 / 모듈을 나타내는 $ scope를 매개 변수로 허용합니다.

<div ng-app = "" ng-controller = "studentController">
   ...
</div>

여기서는 ng-controller 지시문을 사용하여 studentController 라는 컨트롤러를 선언합니다 . 우리는 다음과 같이 정의합니다.

<script>
   function studentController($scope) {
      $scope.student = {
         firstName: "Mahesh",
         lastName: "Parashar",
         
         fullName: function() {
            var studentObject;
            studentObject = $scope.student;
            return studentObject.firstName + " " + studentObject.lastName;
         }
      };
   }
</script>
  • studentController는 $ scope를 인수로 사용하는 JavaScript 개체로 정의됩니다.

  • $ scope는 studentController 개체를 사용하는 응용 프로그램을 나타냅니다.

  • $ scope.student는 studentController 개체의 속성입니다.

  • firstName과 lastName은 $ scope.student 개체의 두 가지 속성입니다. 우리는 그들에게 기본값을 전달합니다.

  • fullName 속성은 결합 된 이름을 반환하는 $ scope.student 개체의 함수입니다.

  • fullName 함수에서 학생 객체를 얻은 다음 결합 된 이름을 반환합니다.

  • 참고로 별도의 JS 파일에서 컨트롤러 객체를 정의하고 HTML 페이지에서 해당 파일을 참조 할 수도 있습니다.

이제 ng-model을 사용하거나 다음과 같은 표현식을 사용하여 studentController의 학생 속성을 사용할 수 있습니다.

Enter first name: <input type = "text" ng-model = "student.firstName"><br>
Enter last name: <input type = "text" ng-model = "student.lastName"><br>
<br>
You are entering: {{student.fullName()}}
  • student.firstName과 student.lastname을 두 개의 입력 상자에 바인딩했습니다.

  • student.fullName ()을 HTML에 바인딩했습니다.

  • 이제 이름과 성 입력 상자에 아무것도 입력 할 때마다 자동으로 업데이트되는 전체 이름을 볼 수 있습니다.

다음 예제는 컨트롤러의 사용을 보여줍니다-

testAngularJS.htm

<html>
   <head>
      <title>Angular JS Controller</title>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
      </script>
   </head>
   
   <body>
      <h2>AngularJS Sample Application</h2>
      
      <div ng-app = "mainApp" ng-controller = "studentController">
         Enter first name: <input type = "text" ng-model = "student.firstName"><br>
         <br>
         Enter last name: <input type = "text" ng-model = "student.lastName"><br>
         <br>
         You are entering: {{student.fullName()}}
      </div>
      
      <script>
         var mainApp = angular.module("mainApp", []);
         
         mainApp.controller('studentController', function($scope) {
            $scope.student = {
               firstName: "Mahesh",
               lastName: "Parashar",
               
               fullName: function() {
                  var studentObject;
                  studentObject = $scope.student;
                  return studentObject.firstName + " " + studentObject.lastName;
               }
            };
         });
      </script>
      
   </body>
</html>

산출

웹 브라우저에서 testAngularJS.htm 파일을 열고 결과를 확인합니다.