AngularJS နယ်ပယ်
နယ်ပယ်သည် HTML (မြင်ကွင်း) နှင့် JavaScript (ထိန်းချုပ်သူ) အကြား ချိတ်ဆက်မှုအပိုင်းဖြစ်သည်။
နယ်ပယ်သည် ရရှိနိုင်သော ဂုဏ်သတ္တိများနှင့် နည်းလမ်းများပါရှိသော အရာဝတ္ထုတစ်ခုဖြစ်သည်။
မြင်ကွင်းနှင့် ထိန်းချုပ်ကိရိယာ နှစ်ခုစလုံးအတွက် နယ်ပယ်ကို ရနိုင်သည်။
Scope ကို ဘယ်လိုသုံးမလဲ။
AngularJS တွင် controller တစ်ခုပြုလုပ်သောအခါ၊ သင်သည် $scope
argument အဖြစ် အရာဝတ္ထုကို ကျော်သွားသည် ။
ဥပမာ
Controller တွင် ပြုလုပ်ထားသော Properties ကို မြင်ကွင်းတွင် ရည်ညွှန်းနိုင်သည်-
<div ng-app="myApp" ng-controller="myCtrl">
<h1>{{carname}}</h1>
</div>
<script>
var app = angular.module('myApp',
[]);
app.controller('myCtrl', function($scope) {
$scope.carname
= "Volvo";
});
</script>
$scope
ထိန်းချုပ်ကိရိယာရှိ အရာဝတ္တု သို့ ဂုဏ်သတ္တိများ ထည့်သောအခါ ၊ မြင်ကွင်း (HTML) သည် ဤဂုဏ်သတ္တိများကို ဝင်ရောက်ခွင့် ရရှိသည်။
မြင်ကွင်းတွင်၊ သင်သည် ရှေ့ဆက်ကို မသုံးပါ $scope
၊ သင်သည် ပိုင်ဆိုင်မှုအမည်ကဲ့သို့သော ပိုင်ဆိုင်မှုအမည်တစ်ခုကိုသာ ရည်ညွှန်းခြင်းဖြစ်သည် {{carname}}
။
Scope ကို နားလည်ခြင်း။
AngularJS အက်ပလီကေးရှင်းကို ထည့်သွင်းစဉ်းစားပါက၊
- HTML ဟူသည်မှာ View ဖြစ်သည်။
- လက်ရှိကြည့်ရှုမှုအတွက် ရရှိနိုင်သောဒေတာဖြစ်သည့် မော်ဒယ်။
- Controller သည် ဒေတာကို ပြုလုပ်/ပြောင်းလဲ/ဖယ်ရှား/ထိန်းချုပ်ပေးသည့် JavaScript လုပ်ဆောင်ချက်ဖြစ်သည်။
ပြီးရင် scope က Model ပါ။
နယ်ပယ်သည် view နှင့် controller နှစ်ခုလုံးအတွက် ရနိုင်သော ဂုဏ်သတ္တိများနှင့် နည်းလမ်းများပါရှိသော JavaScript object တစ်ခုဖြစ်သည်။
ဥပမာ
မြင်ကွင်းတွင် အပြောင်းအလဲများ ပြုလုပ်ပါက၊ မော်ဒယ်နှင့် ထိန်းချုပ်ကိရိယာကို အပ်ဒိတ်လုပ်မည်-
<div ng-app="myApp" ng-controller="myCtrl">
<input ng-model="name">
<h1>My name is {{name}}</h1>
</div>
<script>
var app = angular.module('myApp',
[]);
app.controller('myCtrl', function($scope) {
$scope.name
= "John Doe";
});
</script>
သင်၏နယ်ပယ်ကိုသိပါ။
မည်သည့် အတိုင်းအတာကို အချိန်မရွေး ကိုင်တွယ်ဆောင်ရွက်နေသည်ကို သိရှိရန် အရေးကြီးပါသည်။
အထက်ဖော်ပြပါ ဥပမာနှစ်ခုတွင် နယ်ပယ်တစ်ခုတည်းသာရှိသည်၊ ထို့ကြောင့် သင်၏နယ်ပယ်ကိုသိရှိခြင်းသည် ပြဿနာမဟုတ်သော်လည်း ကြီးမားသောအပလီကေးရှင်းများအတွက် HTML DOM တွင် ကဏ္ဍအချို့ရှိနိုင်သော်လည်း အချို့သောနယ်ပယ်များကိုသာ ဝင်ရောက်နိုင်သည်။
ဥပမာ
ညွှန်ကြားချက် ကို ကိုင်တွယ်ဖြေရှင်းသောအခါ ng-repeat
၊ ထပ်ခါတလဲလဲ တစ်ခုစီသည် လက်ရှိ ထပ်ခါတလဲလဲ အရာဝတ္တုသို့ ဝင်ရောက်ခွင့်ရှိသည်-
<div ng-app="myApp" ng-controller="myCtrl">
<ul>
<li ng-repeat="x in names">{{x}}</li>
</ul>
</div>
<script>
var app = angular.module('myApp',
[]);
app.controller('myCtrl', function($scope) {
$scope.names
= ["Emil", "Tobias", "Linus"];
});
</script>
ဒြပ်စင် တစ်ခုစီ <li>
သည် လက်ရှိ ထပ်ခါတလဲလဲ အရာဝတ္တုသို့ ဝင်ရောက်ခွင့် ရှိသည်၊ ဤကိစ္စတွင်၊ အသုံးပြုခြင်းဖြင့် ရည်ညွှန်းသော စာကြောင်းတစ်ခု x
။
Root Scope
အပလီကေးရှင်းအားလုံးတွင် ညွှန်ကြားချက် $rootScope
ပါရှိသော HTML ဒြပ်စင်ပေါ်တွင် ဖန်တီးထားသော နယ်ပယ်တစ်ခုရှိသည် ။ng-app
rootScope ကို အပလီကေးရှင်းတစ်ခုလုံးတွင် ရနိုင်ပါသည်။
ကိန်းရှင်တစ်ခုသည် လက်ရှိနယ်ပယ်နှင့် rootScope နှစ်ခုလုံးတွင် အမည်တူပါက၊ အပလီကေးရှင်းသည် လက်ရှိနယ်ပယ်ရှိ တစ်ခုကို အသုံးပြုသည်။
ဥပမာ
"အရောင်" ဟု အမည်ပေးထားသည့် ပြောင်းလဲမှုတစ်ခုသည် controller ၏ နယ်ပယ်နှင့် rootScope နှစ်ခုလုံးတွင် ရှိနေသည်-
<body ng-app="myApp">
<p>The rootScope's favorite color:</p>
<h1>{{color}}</h1>
<div ng-controller="myCtrl">
<p>The scope of the controller's favorite color:</p>
<h1>{{color}}</h1>
</div>
<p>The rootScope's favorite color is
still:</p>
<h1>{{color}}</h1>
<script>
var app = angular.module('myApp', []);
app.run(function($rootScope) {
$rootScope.color = 'blue';
});
app.controller('myCtrl',
function($scope) {
$scope.color = "red";
});
</script>
</body>