AngularJS Controllers

AngularJS கன்ட்ரோலர்கள் - ஆப்ளிகேஷன் டேட்டாவைக் கட்டுப்படுத்துதல்

AngularJS கன்ட்ரோலர்கள்

AngularJS கன்ட்ரோலர்கள் AngularJS ஆப்ளிகேஷன்களின் டேட்டாவைக் கட்டுப்படுத்துகின்றன.

AngularJS கன்ட்ரோலர்கள் சாதாரண JavaScript Objects ஆகும்.

உதவிக்குறிப்பு:

AngularJS ஆப்ளிகேஷன்கள் கன்ட்ரோலர்களால் கட்டுப்படுத்தப்படுகின்றன. ng-controller டைரக்டிவ் ஆப்ளிகேஷன் கன்ட்ரோலரை வரையறுக்கிறது.

AngularJS எடுத்துக்காட்டு

HTML:

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

First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{firstName + " " + lastName}}

</div>

JavaScript:

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});
</script>

ng-app="myApp"

AngularJS ஆப்ளிகேஷனை வரையறுக்கிறது

ng-controller="myCtrl"

கன்ட்ரோலரை வரையறுக்கும் AngularJS டைரக்டிவ்

myCtrl function

ஒரு JavaScript function ஆகும்

ஆப்ளிகேஷன் விளக்கம்

கன்ட்ரோலர் மெதட்கள்

மேலே உள்ள எடுத்துக்காட்டு இரண்டு properties கொண்ட ஒரு கன்ட்ரோலர் object ஐ நிரூபித்தது: lastName மற்றும் firstName.

ஒரு கன்ட்ரோலருக்கு மெதட்களும் இருக்கலாம் (மாறிகள் functions ஆக):

HTML:

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

First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{fullName()}}

</div>

JavaScript:

<script>
var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
    $scope.fullName = function() {
        return $scope.firstName + " " + $scope.lastName;
    };
});
</script>

குறிப்பு:

$scope.fullName ஒரு function ஆக வரையறுக்கப்பட்டுள்ளது, இது கன்ட்ரோலரில் உள்ள firstName மற்றும் lastName மதிப்புகளை இணைத்து திருப்பித் தருகிறது.

வெளிப்புற Files இல் கன்ட்ரோலர்கள்

பெரிய ஆப்ளிகேஷன்களில், கன்ட்ரோலர்களை வெளிப்புற files இல் சேமிப்பது பொதுவானது.

<script> tags இடையே உள்ள குறியீட்டை personController.js என்ற வெளிப்புற file இல் நகலெடுக்கவும்:

HTML:

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

First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{fullName()}}

</div>

External File Reference:

<script src="personController.js"></script>

முக்கியம்:

வெளிப்புற கன்ட்ரோலர் files பயன்படுத்தும் போது, AngularJS மாட்யூல் மற்றும் கன்ட்ரோலர் வரையறைகள் சரியாக செய்யப்பட்டுள்ளன என்பதை உறுதி செய்யவும்.

மற்றொரு எடுத்துக்காட்டு

அடுத்த எடுத்துக்காட்டுக்கு நாம் ஒரு புதிய கன்ட்ரோலர் file உருவாக்குவோம்:

namesController.js:

angular.module('myApp', []).controller('namesCtrl', function($scope) {
    $scope.names = [
        {name:'Jani',country:'Norway'},
        {name:'Hege',country:'Sweden'},
        {name:'Kai',country:'Denmark'}
    ];
});

HTML Application:

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

<ul>
    <li ng-repeat="x in names">
        {{ x.name + ', ' + x.country }}
    </li>
</ul>

</div>

<script src="namesController.js"></script>

ng-repeat பற்றி:

ng-repeat டைரக்டிவ் ஒரு வரிசையில் உள்ள ஒவ்வொரு உருப்படிக்கும் HTML குறியீட்டை மீண்டும் மீண்டும் செய்கிறது. இது AngularJS இல் உள்ள சக்திவாய்ந்த டைரக்டிவ்களில் ஒன்றாகும்.

பயிற்சிகள் மூலம் கற்றல்

கன்ட்ரோலர் மெதட்கள் பற்றி பின்வருவனவற்றில் எது சரியானது?

கன்ட்ரோலரில் functions ஆக வரையறுக்கப்படலாம்
✓ சரி! $scope.fullName = function() {...} போன்று மெதட்கள் வரையறுக்கப்படுகின்றன
வியூவில் {{ }} மூலம் அழைக்கப்படலாம்
✓ சரி! {{fullName()}} போன்று வியூவில் மெதட்களை அழைக்கலாம்
கன்ட்ரோலரில் மெதட்கள் இருக்க முடியாது
✗ தவறு! கன்ட்ரோலர்களில் மெதட்கள் இருக்கலாம்
$scope object மூலம் அணுகப்படுகின்றன
✓ சரி! அனைத்து கன்ட்ரோலர் properties மற்றும் மெதட்களும் $scope மூலம் அணுகப்படுகின்றன

சிறந்த நடைமுறைகள்

வெளிப்புற Files பயன்படுத்தவும்

பெரிய ஆப்ளிகேஷன்களுக்கு கன்ட்ரோலர்களை வெளிப்புற JavaScript files இல் வைக்கவும்

கன்ட்ரோலர்களைக் குறைக்கவும்

ஒவ்வொரு கன்ட்ரோலரும் ஒரு குறிப்பிட்ட பொறுப்பை மட்டுமே கொண்டிருக்க வேண்டும்

DOM கையாளுதல் தவிர்க்கவும்

கன்ட்ரோலர்களில் நேரடியாக DOM கையாளுதல் செய்யக்கூடாது

$scope மட்டுமே பயன்படுத்தவும்

கன்ட்ரோலரில் ஆப்ளிகேஷன் டேட்டா மற்றும் மெதட்களை $scope மூலம் மட்டுமே வரையறுக்கவும்