Angular Data binding

Angular js แ€Ÿာ two way data binding แ€กแ€™်ိဳးแ€กแ€…ားျแ€–แ€…္แ€•ါแ€แ€š္။ binding ျแ€•ဳแ€œုแ€•္แ€›ာแ€™ွာ แ€กแ€•ိုแ€„္းแ€žံုးแ€•ိုแ€„္း แ€›ွိแ€•ါแ€แ€š္။Model , View แ€”ဲแ‚” Template แ€ိုแ‚”ျแ€–แ€…္แ€•ါแ€แ€š္။
Model แ€†ိုแ€ာแ€€ေแ€ာแ‚”  application แ€›ဲแ‚• data ေแ€ြแ€€ို แ€žိแ€™္းแ€†แ€Š္း แ€‘ိแ€”္းแ€်ဳแ€•္แ€›แ€ဲแ‚”แ€กแ€•ိုแ€„္းျแ€–แ€…္แ€•ါแ€แ€š္။
View แ€†ိုแ€ာแ€€ေแ€ာแ‚” user แ€€ိုแ€š္แ€ိုแ€„္ျแ€™แ€„္ေแ€”แ€›แ€™แ€š့္ application web page แ€€ိုแ€†ိုแ€œိုแ€•ါแ€แ€š္။
Template แ€†ိုแ€ာแ€€ေแ€ာแ‚” angular code ေแ€ြေแ€•ါแ€„္းแ€‘ားแ€ဲแ‚” Html code ေแ€ြแ€•ဲျแ€–แ€…္แ€•ါแ€แ€š္။ angular แ€กေแ€”แ€”ဲแ‚” compile แ€™แ€œုแ€•္แ€›ေแ€žးแ€•ါแ€˜ူး။
Augular compile process
Angular แ€Ÿာ Template แ€‘ဲแ€€ Html tag ေแ€ြ แ€€ိုแ€กแ€›แ€„္แ€›ွာแ€•ါแ€แ€š္။แ€กဲแ€’ီแ€™ွာ ng-app directive แ€€ိုေแ€ြแ‚”แ€ာแ€”ဲแ‚” $rootScope แ€แ€…္แ€ုแ€€ိုแ€–แ€”္แ€ီးแ€œိုแ€€္แ€•ါแ€แ€š္။ျแ€•ီးแ€›แ€„္ แ€กဲแ€’ီ tag แ€›ဲแ‚• แ€กแ€‘ဲแ€™ွာแ€›ွိแ€ဲแ‚” child DOM element ေแ€ြแ€€ို แ€…แ€แ€„္ compile แ€œုแ€•္แ€•ါေแ€ာแ‚”แ€แ€š္။
แ€กဲแ€’ီแ€กแ€်ိแ€”္แ€™ွာ compile แ€”ဲแ‚” linking ေแ€แšแ€ဲแ‚” process ႏွแ€…္แ€ုแ€€ိုแ€œုแ€•္ေแ€•းแ€•ါแ€แ€š္။compile process แ€Ÿာ child tag ေแ€ြแ€›ဲแ‚• directive ေแ€ြแ€€ို แ€œုိแ€€္แ€›ွာျแ€•ီး list แ€œုแ€•္ေแ€•းแ€•ါแ€แ€š္။ ျแ€•ီးแ€›แ€„္ แ€ฅီးแ€…ားေแ€•းแ€กแ€œုိแ€€္แ€…ီေแ€•းแ€•ါแ€แ€š္။directive แ€แ€…္แ€ုแ€…ီแ€™ွာ แ€€ိုแ€š္แ€•ိုแ€„္ compile function แ€€แ€›ွိႏွแ€„့္ျแ€•ီးแ€žားျแ€–แ€…္แ€•ါแ€แ€š္။ แ€กဲแ€’ီ compile function แ€กแ€œုแ€•္แ€œုแ€•္แ€ဲแ‚”แ€กแ€ါแ€™ွာေแ€ာแ‚” แ€žแ€€္แ€†ိုแ€„္แ€›ာ DOM element แ€€ို ျแ€•แ€„္แ€†แ€„္ ျแ€•ဳแ€œုแ€•္แ€œိုแ‚”แ€›แ€žြားแ€•ါแ€แ€š္။
แ€กဲแ€’ီ compile function ေแ€ြrun ျแ€•ီးแ€žြားแ€ဲแ‚”แ€กแ€ါแ€™ွေแ€ာแ‚” linking function ေแ€ြแ€€ို return แ€กေแ€”แ€”ဲแ‚” แ€‘ုแ€္ေแ€•းแ€•ါแ€แ€š္။แ€กဲแ€’ီ linking function ေแ€ြแ€€ို angular แ€€ run ျแ€•ီးแ€žြားแ€ဲแ‚”แ€กแ€ါแ€™ွာေแ€ာแ‚” data bind แ€œုแ€•္ျแ€•ီးแ€žား ၊ event listener ေแ€ြ bind ျแ€•ီးแ€žား DOM element ေแ€ြแ€€ို แ€‘ုแ€္ေแ€•းแ€œုိแ€€္แ€•ါแ€แ€š္။

แ€’ါแ€€ေแ€ာแ‚” angular แ€Ÿာ two way data binding ျแ€–แ€…္ျแ€•ီး แ€˜แ€š္แ€œို bind แ€แ€š္แ€†ိုแ€ာแ€€ို แ€›ွแ€„္းျแ€•ေแ€•းแ€ာျแ€–แ€…္แ€•ါแ€แ€š္။
แ€กแ€ု two way data binding แ€€ိုแ€š္แ€˜แ€š္แ€œိုแ€กแ€žံုးျแ€•ဳႏိုแ€„္แ€žแ€œဲแ€†ိုแ€ာแ€€ို demo แ€”ဲแ‚”แ€แ€€ြแ€›ွแ€„္းျแ€•ေแ€•းแ€•ါแ€™แ€š္။
Source Code
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
    First Name <input ng-model="firstname"><br/>
    Last Name  <input ng-model="lastname"><br/>
    Full Name  {{ firstname }} {{ lastname }}
</div>
<script>
      var app = angular.module('myApp', []);
      app.controller('myCtrl', function($scope) {
           $scope.firstname = "Kyaw";
           $scope.lastname = "Gyi";
      });
</script>



Demo Example
First Name:
Last Name:
Full Name :{{ firstname }} {{ lastname }}


แ€กแ€‘แ€€္แ€€ demo example แ€”ဲแ‚” source code แ€€ို ျแ€•แ€”္แ€›ွแ€„္းျแ€•ေแ€•းแ€•ါแ‚”แ€™แ€š္။ ng-app directive แ€€ိုေแ€ြแ‚”ျแ€แ€„္းแ€กားျแ€–แ€„့္ แ€šแ€ု application แ€Ÿာ แ€‘ို div tag แ€กแ€•ိုแ€„္แ€กျแ€–แ€…္ angular แ€€ို แ€žိျแ€™แ€„္ေแ€…แ€•ါแ€แ€š္။แ€‘ိုแ‚”ျแ€•แ€„္ angular application แ€แ€…္แ€ုแ€แ€Š္แ€›ွိေแพแ€€ာแ€„္းแ€€ို แ€žိေแ€…ျแ€•ီး compile process แ€€ို แ€…แ€แ€„္ေแ€…แ€•ါแ€แ€š္။
script tag แ€‘ဲแ€ြแ€„္แ€œแ€Š္း "myApp" application module แ€แ€…္แ€ုแ€€ိုแ€แ€Š္ေแ€†ာแ€€္แ€‘ားแ€ာေแ€ြแ‚”แ€›แ€•ါแ€™แ€š္။
ေแ€”ာแ€€္ app variable แ€‘ဲแ€€ို application แ€€ို assign แ€œုแ€•္แ€‘ားแ€ာေแ€ြแ‚”แ€›แ€•ါแ€™แ€š္။
var app = angular.module('myApp', []);

ng-controller directive แ€Ÿာ แ€กဲแ€’ီ application แ€€ို control แ€œုแ€•္ေแ€•းแ€™แ€š့္ controller แ€€ို แ€žแ€္แ€™ွแ€္ေแ€•းแ€ာแ€•ါ။ controller object แ€กแ€žแ€…္ แ€แ€…္แ€ုแ€€ို แ€–แ€”္แ€ီးေแ€•းแ€•ါแ€แ€š္။ child scope แ€แ€…္แ€ုแ€€ိုုแ€œแ€Š္းแ€–แ€”္แ€ီးေแ€•းแ€•ါแ€แ€š္။ แ€’ီ application แ‡ဲแ‚• scope แ€œိုแ‚”แ€†ိုแ€œိုแ€ာแ€•ါ။ แ€’ါေแพแ€€ာแ€„့္ แ€’ီapplication แ€‘ဲแ€™ွာ แ€แ€Š္ေแ€†ာแ€€္แ€ဲแ‚” variable ေแ€ြแ€กแ€ြแ€€္ $scope แ€€ိုแ€‘แ€Š့္แ€žြแ€„္းေแ€•းแ€‘ားแ€›แ€ာျแ€–แ€…္แ€•ါแ€แ€š္။
eg: $scope.firstname, $scope.lastname
แ€กဲแ€’ီแ€œို defined แ€œုแ€•္ေแ€•းแ€™ွ Html แ€˜แ€€္แ€€ application scope แ€™ွာ แ€กแ€žံုးျแ€•ဳႏိုแ€„္แ€™ွာျแ€–แ€…္แ€•ါแ€แ€š္။
   $scope.firstname = "Kyaw";
    $scope.lastname = "Gyi";   
firstname แ€”ဲแ‚” lastname แ€€ို assign แ€œုแ€•္ေแ€•းแ€ာျแ€–แ€…္แ€•ါแ€แ€š္။ แ€กဲแ€œို assign แ€œုแ€•္ေแ€•းแ€œိုแ€€္แ€ာแ€”ဲแ‚”
ng-model directive แ€žံုးแ€‘ားแ€ဲแ‚” input tag ေแ€ြแ€›ဲแ‚• แ€แ€”္แ€–ိုးแ€Ÿာ แ€กแ€œိုแ€œိုေျแ€•ာแ€„္းแ€žြားแ€•ါแ€แ€š္။ view แ€”ဲแ‚” model bind แ€‘ားแ€ာေแพแ€€ာแ€„့္ျแ€–แ€…္แ€•ါแ€แ€š္။
ေแ€”ာแ€€္แ€แ€ုแพแ€€แ€Š္แ‚”แ€›ေแ€กာแ€„္
full name แ€™ွာแ€žံုးแ€‘ားแ€ာแ€€ expression แ€•ါ။ expression แ€€ို $scope varaible ေแ€ြแ€›ဲแ‚• แ€แ€”္แ€–ိုးแ€€ိုแ€‘ုแ€္ျแ€• แ€œိုแ€ဲแ‚”แ€กแ€ါแ€™ွာแ€žံုးႏိုแ€„္แ€•ါแ€แ€š္။
Full Name :{{ firstname }} {{ lastname }}
แ€’ါေแพแ€€ာแ€„့္ application แ€… run แ€ဲแ‚”แ€กแ€ါแ€™ွာ แ€กေแ€•แšแ€€ assign แ€œုแ€•္แ€‘ားแ€ဲแ‚” แ€แ€”္แ€–ိုးแ€กแ€ိုแ€„္း firstname แ€”ဲแ‚” lastname แ€€ို ေแ€–ာ္ျแ€•ေแ€”แพแ€€แ€ာျแ€–แ€…္แ€•ါแ€แ€š္။ แ€กแ€…แ€™ွာ Full name : Kyaw Gyi แ€†ိုျแ€•ီးျแ€™แ€„္ေแ€”แ€›แ€™ွာแ€•ါ။

แ€กแ€ု input tag แ€‘ဲแ€€ แ€แ€”္แ€–ိုးแ€€ို ေျแ€•ာแ€„္းแพแ€€แ€Š့္แ€›ေแ€กာแ€„္ แ€’ါแ€†ို แ€žူแ‚”ေแ€กာแ€€္แ€™ွာ ေแ€›းแ€‘ားแ€ဲแ‚” full name แ€€แ€œိုแ€€္ေျแ€•ာแ€„္းแ€ာแ€€ိုေแ€ြแ‚”แ€›แ€•ါแ€™แ€š္။

แ€˜ာแ€œိုแ‚”แ€œဲแ€†ိုေแ€ာแ‚” input tag แ€›ဲแ‚• แ€แ€”္แ€–ိုး ေျแ€•ာแ€„္းแ€žြားแ€ာแ€”ဲแ‚” แ€žူแ€”ဲแ‚” bind แ€œုแ€•္แ€‘ားแ€ဲแ‚” $scope variable แ€Ÿာ แ€œုိแ€€္ေျแ€•ာแ€„္းแ€•ါแ€แ€š္။แ€’ါေแพแ€€ာแ€„့္ แ€กဲแ€’ီ $scope variable แ€€ို expression แ€กေแ€”แ€”ဲแ‚” ေแ€–ာ္ျแ€•แ€‘ားแ€ဲแ‚” full name ေแ€”แ€›ာแ€™ွာ แ€œုိแ€€္ေျแ€•ာแ€„္းေแ€”แพแ€€แ€ာျแ€–แ€…္แ€•ါแ€แ€š္။

แ€’ါေแพแ€€ာแ€„့္ angular แ€€ို two way binding แ€œိုแ‚”ေแ€แšแ€ာျแ€–แ€…္แ€•ါแ€แ€š္။ $scope variable แ‡ဲ แ€แ€”္แ€–ိုးေျแ€•ာแ€„္းแ€œဲแ€™ႈแ€Ÿာ bind แ€‘ားแ€ဲแ‚” input tag element แ€›ဲแ‚• แ€แ€”္แ€–ိုးแ€€ိုေျแ€•ာแ€„္းแ€œဲေแ€…ျแ€•ီးေแ€ာแ‚” ၊ แ€กဲแ€’ီ input tag แ‡ဲแ‚• แ€แ€”္แ€–ိုးแ€€ိုေျแ€•ာแ€„္းแ€œိုแ€€္แ€›แ€„္ แ€œแ€Š္း bind แ€‘ားแ€ဲแ‚” scope variable แ€›ဲแ‚• แ€แ€”္แ€–ိုးแ€œแ€Š္းေျแ€•ာแ€„္းแ€žြားแ€•ါแ€แ€š္။

angular js แ€กေแพแ€€ာแ€„္းแ€€ို แ€กแ€แ€္ႏိုแ€„္แ€†ံုး แ€–แ€္แ€›ႈแ€”ားแ€œแ€Š္ေแ€กာแ€„္แ€œုแ€•္ျแ€•ီး ျแ€•แ€”္แ€œแ€Š္ေแ€›းแ€žားแ€‘ားแ€ာျแ€–แ€…္แ€•ါแ€แ€š္။ ေแ€žแ€်ာေแ€•ါแ€€္ แ€œုိแ€กแ€•္แ€်แ€€္ေแ€ြแ€›ွိေแ€”ႏိုแ€„္แ€•ါแ€แ€š္။ แ€’ါေแพแ€€ာแ€„့္ แ€’ီ post แ€€ေแ€” แ€”ားแ€œแ€Š္แ€žแ€„့္แ€žေแ€œာแ€€္ แ€”ားแ€œแ€Š္ျแ€•ီးแ€›แ€„္ online แ€™ွာแ€œแ€Š္း แ€†แ€€္แ€œแ€€္แ€–แ€္แ€›ႈแพแ€€แ€›แ€”္ แ€กแพแ€€ံျแ€•ဳแ€œုိแ€•ါแ€แ€š္။

แ€žိแ€•္แ€”ားแ€™แ€œแ€Š္แ€˜ူးแ€‘แ€„္แ€›แ€„္ ႏွแ€…္แ€ါျแ€•แ€”္แ€–แ€္แ€•ါ။

reference
http://www.w3schools.com/angular
https://docs.angularjs.org/guide
http://daginge.com/technology/2014/03/04/understanding-template-compiling-in-angularjs/

Previous
Next Post »

Thorium School

Thorium School
Be professional with us