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 ஆகும்
ஆப்ளிகேஷன் விளக்கம்
- AngularJS ஆப்ளிகேஷன்
ng-app="myApp"மூலம் வரையறுக்கப்படுகிறது - ஆப்ளிகேஷன்
<div>உள்ளே இயங்குகிறது ng-controller="myCtrl"attribute ஒரு AngularJS டைரக்டிவ் ஆகும்- இது ஒரு கன்ட்ரோலரை வரையறுக்கிறது
myCtrlfunction ஒரு JavaScript function ஆகும்- AngularJS
$scopeobject உடன் கன்ட்ரோலரை அழைக்கும் - AngularJS இல்,
$scopeஆப்ளிகேஷன் object ஆகும் - கன்ட்ரோலர் scope இல் இரண்டு properties (மாறிகள்) உருவாக்குகிறது
ng-modelடைரக்டிவ்கள் input fields ஐ கன்ட்ரோலர் properties உடன் bind செய்கின்றன
கன்ட்ரோலர் மெதட்கள்
மேலே உள்ள எடுத்துக்காட்டு இரண்டு 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 இல் உள்ள சக்திவாய்ந்த டைரக்டிவ்களில் ஒன்றாகும்.
பயிற்சிகள் மூலம் கற்றல்
கன்ட்ரோலர் மெதட்கள் பற்றி பின்வருவனவற்றில் எது சரியானது?
சிறந்த நடைமுறைகள்
வெளிப்புற Files பயன்படுத்தவும்
பெரிய ஆப்ளிகேஷன்களுக்கு கன்ட்ரோலர்களை வெளிப்புற JavaScript files இல் வைக்கவும்
கன்ட்ரோலர்களைக் குறைக்கவும்
ஒவ்வொரு கன்ட்ரோலரும் ஒரு குறிப்பிட்ட பொறுப்பை மட்டுமே கொண்டிருக்க வேண்டும்
DOM கையாளுதல் தவிர்க்கவும்
கன்ட்ரோலர்களில் நேரடியாக DOM கையாளுதல் செய்யக்கூடாது
$scope மட்டுமே பயன்படுத்தவும்
கன்ட்ரோலரில் ஆப்ளிகேஷன் டேட்டா மற்றும் மெதட்களை $scope மூலம் மட்டுமே வரையறுக்கவும்