AngularJS - kontrolery
Aplikacja AngularJS opiera się głównie na kontrolerach do sterowania przepływem danych w aplikacji. Kontroler jest definiowany za pomocą dyrektywy ng-controller . Kontroler to obiekt JavaScript zawierający atrybuty / właściwości i funkcje. Każdy kontroler akceptuje $ scope jako parametr, który odnosi się do aplikacji / modułu, który kontroler musi obsługiwać.
<div ng-app = "" ng-controller = "studentController">
...
</div>
Tutaj deklarujemy kontroler o nazwie studentController , używając dyrektywy ng-controller. Definiujemy to następująco -
<script>
function studentController($scope) {
$scope.student = {
firstName: "Mahesh",
lastName: "Parashar",
fullName: function() {
var studentObject;
studentObject = $scope.student;
return studentObject.firstName + " " + studentObject.lastName;
}
};
}
</script>
StudentController jest zdefiniowany jako obiekt JavaScript z $ scope jako argumentem.
$ Scope odnosi się do aplikacji, która używa obiektu studentController.
$ Scope.student jest właściwością obiektu studentController.
FirstName i lastName to dwie właściwości obiektu $ scope.student. Przekazujemy im wartości domyślne.
Właściwość fullName jest funkcją obiektu $ scope.student, która zwraca połączoną nazwę.
W funkcji fullName pobieramy obiekt studenta, a następnie zwracamy połączoną nazwę.
Uwaga: możemy również zdefiniować obiekt kontrolera w oddzielnym pliku JS i odnieść się do tego pliku na stronie HTML.
Teraz możemy użyć właściwości studenta studentController za pomocą ng-model lub używając następujących wyrażeń -
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()}}
Powiązaliśmy student.firstName i student.lastname do dwóch pól wejściowych.
Powiązaliśmy student.fullName () z HTML.
Teraz za każdym razem, gdy wpiszesz cokolwiek w polach wprowadzania imienia i nazwiska, zobaczysz, że pełna nazwa jest aktualizowana automatycznie.
Przykład
Poniższy przykład pokazuje użycie kontrolera -
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>
Wynik
Otwórz plik testAngularJS.htm w przeglądarce internetowej i zobacz wynik.