ആംഗുലർ ജെ.എസ്.(പ്രോഗാമിംഗ് ഭാഷ)

വിക്കിപീഡിയ, ഒരു സ്വതന്ത്ര വിജ്ഞാനകോശം.
Jump to navigation Jump to search
AngularJS
AngularJS logo
വികസിപ്പിച്ചത് Google
ആദ്യ പതിപ്പ് ഒക്ടോബർ 20, 2010; 7 വർഷങ്ങൾ മുമ്പ് (2010-10-20)[1]
Stable release
2.2.0 / നവംബർ 14, 2016; 21 months മുമ്പ് (2016-11-14)[2]
Repository Edit this at Wikidata
വികസന സ്ഥിതി Active
ഭാഷ TypeScript, JavaScript
പ്ലാറ്റ്‌ഫോം Cross-platform, see Legacy browser support
വലുപ്പം 144 KB production
1 MB development
തരം JavaScript, Single-page application Framework
അനുമതി MIT License
വെബ്‌സൈറ്റ് angularjs.org
angular.io

ജാവാ സ്ക്രിപ്റ്റിൽ അധിഷ്‌ഠിതമായ ഒരു ഫ്രണ്ട് എൻറ് വെബ് സോഫ്റ്റ്‌വെയർ വികസന ചട്ടക്കൂടാണ് ആംഗുലർ ജെ.എസ് (English : AngularJS). ഒരു സ്വതന്ത്ര സോഫ്റ്റ്‌വെയർ പ്രൊജക്റ്റായ ഇത് പരിപാലിക്കുന്നത് ഗൂഗിളാണ്. എം.ഐ.ടി. ലൈസൻസിലാണ് ആംഗുലർ ജെ.എസ്. പുറത്തിറങ്ങുന്നത്. ഒറ്റ താളുള്ള വെബ് സോഫ്റ്റ്‌വെയറുകൾ വികസിപ്പിക്കുമ്പോൾ ഉണ്ടാവുന്ന പ്രതിബന്ധങ്ങൾ തരണം ചെയ്യലാണ് ആംഗുലർ ജെ.എസ്. പ്രൊജക്റ്റിൻറെ പ്രധാന ലക്ഷ്യം. ജാവാസ്ക്രിപ്റ്റ് ഘടകങ്ങൾ ക്രോസ്-പ്ലാറ്റ്ഫോം മൊബൈൽ ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിനുള്ള ചട്ടക്കൂടാണ് അപ്പാച്ചെ കോർഡോവ. ക്ലൈൻറ്-സൈറ്റായ മോഡൽ വ്യൂ കൺട്രോളർ (എം.വി.സി) ഒരു ചട്ടക്കൂട് നൽകുന്നതിലൂടെ അത്തരം ആപ്ലിക്കേഷനുകളുടെ വികസനവും ടെസ്റ്റിംഗും ലഘൂകരിക്കാനാണ് ഇത് ലക്ഷ്യമിടുന്നത്, മോഡൽ-വ്യൂ-വ്യൂ മോഡേൺ (എം.വി.വി.എം) ആർക്കിറ്റക്ചറുകൾ, അത് സമൃദ്ധമായ ഇന്റർനെറ്റ് പ്രയോഗങ്ങളിൽ ഉപയോഗിക്കുന്ന ഘടകങ്ങളും ഉണ്ട്. 2014 ൽ, ആംഗുലർ ജെ.എസ് ടീം ആംഗുലറിൽ (ആപ്ലിക്കേഷൻ പ്ലാറ്റ്ഫോം) പ്രവർത്തിക്കാൻ തുടങ്ങി.

എച്ച്.റ്റി.എം.എൽ പേജ് പ്രാരംഭ വായന നടത്തിക്കൊണ്ട് ആംഗുലർ ജെ.എസ് ഫ്രെയിംവർക്ക് പ്രവർത്തിക്കുന്നു, അതിൽ കൂടുതൽ ഇഷ്ടാനുസൃത ടാഗ് ആട്രിബ്യൂട്ടുകൾ അതിൽ ഉൾച്ചേർത്തിട്ടുണ്ട്. ആട്രിബ്യൂട്ടുകൾ പേജിൻറെ ഇൻപുട്ട് അല്ലെങ്കിൽ ഔട്ട്പുട്ട് ഭാഗങ്ങൾ സ്റ്റാൻഡേർഡ് ജാവാസ്ക്രിപ്റ്റ് വേരിയബിളുകൾ പ്രതിനിധാനം ചെയ്യുന്ന മാതൃകയിലേക്ക് നയിക്കുന്നു. ആ ജാവാസ്ക്രിപ്റ്റ് വേരിയബിളിൻറെ മൂല്യങ്ങൾ കോഡിനകത്ത് സ്വമേധയാ സജ്ജമാക്കാം, അല്ലെങ്കിൽ സ്റ്റാറ്റിക് അല്ലെങ്കിൽ ഡൈനാമിക് ജെസൺ(JSON) ഉറവിടങ്ങളിൽ നിന്നും തിരിച്ചെടുക്കാവുന്നതാണ്.

ജാവാസ്ക്രിപ്റ്റ് അനലിറ്റിക്സ് സർവീസായ ലിബ്സ്കോർ പറയുന്ന പ്രകാരം, വൂൾഫ്രം ആൽഫ, എൻബിസി, വാൽഗ്രീൻസ്, ഇൻറൽ, സ്പ്രിൻറ്, എബിസി ന്യൂസ്, 2016 ഒക്റ്റോബറിൽ പരീക്ഷിച്ച 1 ദശലക്ഷത്തിൽ 12,000 എണ്ണം[3]മറ്റ് സൈറ്റുകൾ എന്നിവയുടെ വെബ്സൈറ്റുകളിൽ ആംഗുലർ ജെഎസ് ഉപയോഗിക്കുന്നു. ഗിറ്റ്ഹബ്ബിൽ ഏറ്റവുമധികം നക്ഷത്രമിട്ട പ്രൊജക്റ്റുകളിൽ ആദ്യ 100 എണ്ണം ആംഗുലർ ജെഎസ് ആണ്.[4]

മോങ്കോഡി.ബി.(MongoDB) ഡാറ്റാബേസ്, എക്സ്പ്രസ്സ്.ജെഎസ് വെബ് ആപ്ലിക്കേഷൻ സെർവർ ചട്ടക്കൂട്, കൂടാതെ നോഡ്.ജെഎസ്(Node.js) സെർവർ റൺടൈം എൻവയോൺമെൻറ് എന്നിവയുൾപ്പെടുന്ന മെൻ സ്റ്റാക്കിന്റെ മുൻഭാഗമാണ് ആംഗുലർ.ജെഎസ്.

ഉപയോക്തൃ ഇൻറർഫേസുകൾ സൃഷ്ടിക്കുന്നതിനും സോഫ്റ്റ് വെയർ ഘടകങ്ങൾ ബന്ധിപ്പിക്കുന്നതിനും വ്യക്തമായ പ്രോഗ്രാമിംഗ് ഉപയോഗിക്കുമെന്ന വിശ്വാസത്തിലാണ് ആംഗുലർ ജെ.എസ് നിർമ്മിച്ചിരിക്കുന്നത്. ഒരു ആപ്ലിക്കേഷൻറെ ബിസിനസ് യുക്തി നിർവ്വചിക്കുന്നതിന് അനുപമമായ പ്രോഗ്രാമിംഗ് കൂടുതൽ അനുയോജ്യമാണ്.[5] ചട്ടക്കൂടുകളുടെയും കാഴ്ചപ്പാടുകളുടെയും യാന്ത്രിക സമന്വയം അനുവദിക്കുന്ന പരിവർത്തനാത്മകമായ ഉള്ളടക്കം അവതരിപ്പിക്കുന്നതിന് ഫ്രെയിം വർക്ക് പരമ്പരാഗത എച്ച്.ടി.എം.എല്ലിനെ പര്യാപ്തമാക്കുകയും വിപുലീകരിക്കുകയും ചെയ്യുന്നു. ആംഗുലർ ജെഎസിൻറെ രൂപകൽപ്പനയിൽ ഇനിപ്പറയുന്നവ ഉൾപ്പെടുന്നു:

  • ആപ്ലിക്കേഷൻ ലോജിക്കിൽ നിന്നും ഡോം (DOM) കൃത്രിമത്വം വേർപെടുത്തുന്നതിൻറെ ബുദ്ധിമുട്ട് കോഡുകളെ ഘടനാപരമായ രീതിയിലാണ് ബാധിക്കുന്നത്.
  • സെർവറിൻറെ ഭാഗത്തു് ഒരു ആപ്ലിക്കേഷന്റെ ക്ലയൻറ് സൈറ്റിനെ വേർതിരിക്കുക . ഇത് സമാന്തരമായി പുരോഗമനത്തിനായി പ്രവർത്തിക്കുന്നു, ഒപ്പം ഇരുവശങ്ങളിലും പുനരുപയോഗിക്കാൻ അനുവദിക്കുന്നു.
  • ഒരു ആപ്ലിക്കേഷൻ നിർമ്മിക്കാനുള്ള യാത്രയ്ക്കായി ഘടന നൽകുന്നു: ബിസിനസ്സ് യുക്തി എഴുതുന്നതിലൂടെയും, പരീക്ഷണത്തിലൂടെയും, യു.ഐ(UI) രൂപകൽപ്പന ചെയ്യുന്നതിൽ നിന്നും.

അവതരണം, ഡാറ്റ, ലോജിക്കൽ ഘടകങ്ങൾ എന്നിവ വ്യത്യസ്തമാക്കുന്നതിന് ആംഗുലർ ജെ.എസ് എം.വി.സി(MVC) പാറ്റേൺ നടപ്പിലാക്കുന്നു.[6] ഡിപൻഡൻസി ഇഞ്ചക്ഷൻ ഉപയോഗിച്ചാൽ, പരമ്പരാഗതമായി സെർവർ സൈഡ് സേവനങ്ങളായ കാഴ്ച-ആശ്രിത കൺട്രോളറുകൾ, ക്ലൈന്റ്-സൈഡ് വെബ് ആപ്ലിക്കേഷനുകൾ എന്നിവ നൽകുന്നു. തൽഫലമായി, സെർവറിലെ മിക്ക ഭാരം കുറയ്ക്കാൻ കഴിയും.

പ്രവർത്തനം[തിരുത്തുക]

ആംഗുലർ ജെ.എസ്. അതുൾപ്പെടുത്തി വികസിപ്പിച്ചിരിക്കുന്ന എച്ച്.ടി.എം.എൽ താൾ ബ്രൗസറിൽ കാണിക്കുന്നതിന് മുന്നേ അതിനെ പ്രൊസസ്സ് ചെയ്യുന്നു. ആംഗുലർ ജെ.എസ്സ്. എച്ച്.ടി.എം.എല്ലിൽ ഇല്ലാത്ത ചില ടാഗുകളും ആട്രിബ്യൂട്ടുകളും നൽകുന്നുണ്ട്. പ്രൊസസ്സ് ചെയ്യുന്ന എച്ച്.ടി.എം.എൽ താളിൽ ഇവയുണ്ടെങ്കിൽ അവിടുത്ത ഡാറ്റാ എടുക്കുകയോ, അങ്ങോട്ട് ഡാറ്റാ ബൈൻറ് ചെയ്യുകയോ ചെയ്യുന്നു.

ലക്ഷ്യം(Scope)[തിരുത്തുക]

കമ്പ്യൂട്ടർ സയൻസിൻറെ അടിസ്ഥാനഘടകങ്ങളെ പോലെ ആംഗുലർ ജെ.എസ്, "സ്കോപ്പ്" എന്ന പദം ഉപയോഗിക്കുന്നു. പ്രോഗ്രാമിൽ ഒരു പ്രത്യേക ബിൻഡിങ്ങ് സാധുവാണെങ്കിൽ കമ്പ്യൂട്ടർ സയൻസിലെ സാധ്യത വിവരിക്കുന്നു. ഇ.സി.എം. എ-262 (ECMA-262) സ്പെസഫിക്കേഷൻ ഒരു പരിധി നിർവ്വചിക്കുന്നു:[7]ക്ലൈൻറ്റ്-സൈഡ് വെബ് സ്ക്രിപ്റ്റുകളിലും ഒരു ഫങ്ഷൻ ഒബ്ജക്റ്റ് എക്സിക്യൂട്ട് ചെയ്യുന്ന ഒരു ലക്സിക്കൽ പരിസ്ഥിതി, ലാംഡ കാൽകുലസിൽ[8] എങ്ങനെയാണ് സ്കോപ്പ്[9] നിർവ്വചിക്കുന്നത് എന്ന് നോക്കാം."എം.വി.സി(MVC)" ആർക്കിടെക്ചറിലെ ഭാഗമായി സ്കോപ്പ് "മോഡൽ" രൂപീകരിക്കുന്നു, കൂടാതെ "വ്യൂ", "കൺട്രോളർ" എന്നിവയും ആക്സസ് ചെയ്യാവുന്ന എല്ലാ വോള്യങ്ങളും ആക്സസ് ചെയ്യാൻ കഴിയും. സ്കോപ്പ് ഒരു പശ പോലെ പ്രവർത്തിക്കുകയും "വ്യൂ", "കൺട്രോളർ" എന്നിവ ബന്ധിക്കുകയും ചെയ്യുന്നു. ആംഗുലർ ജെ.എസിൽ, മറ്റേതെങ്കിലും വസ്തുവിനെപ്പോലെ ജാവാസ്ക്രിപ്റ്റുകളിലെ വേരിയബിൾ സ്കോപ്പ് സാധാരണ നിയമങ്ങൾ പിന്തുടരുന്നതിന്, ഒരു പ്രോഗ്രാമിൻറെ ഏതെങ്കിലും ഭാഗത്ത് തന്നെ അല്ലെങ്കിൽ പരിധിക്ക് വിധേയമായി നിൽക്കുന്ന ഒരു പ്രത്യേക തരത്തിലുള്ള വസ്തുവാണ് "സ്കോപ്പ്".[10] "സ്കോപ്പ്" എന്ന പദം താഴെ ഉപയോഗിക്കുമ്പോൾ, ആംഗുലറിൽ സ്കോപ്പ് ഒബ്ജക്റ്റിനെ സൂചിപ്പിക്കുന്നു, അല്ലാതെ ഒരു നെയിം ബൈൻഡിംഗിൻറെ വ്യാപ്തിയല്ല.

ബൂട്ട്സ്ട്രാപ്പ്[തിരുത്തുക]

ഡോം(DOM) ലോഡ് ചെയ്ത ശേഷം ആംഗുലർ ജെ.എസ് ബൂട്ട്സ്ട്രാപ്പർ നിർവഹിച്ച കർത്തവ്യം മൂന്ന് ഘട്ടങ്ങളായി സംഭവിക്കും:[11]

  1. ഒരു പുതിയ ഇൻജക്റ്റർ ഉണ്ടാക്കുക.
  2. ഡോം അലങ്കരിക്കുന്ന നിർദ്ദേശങ്ങളുടെ സമാഹാരം.
  3. എല്ലാ നിർദ്ദേശങ്ങളും സ്കോപ്പിലേക്ക് ലിങ്കുചെയ്യുക.

ഡാറ്റാ ബൈൻഡിംഗുകളും അവതരണ ഘടകങ്ങളുടെ പെരുമാറ്റവും നിർവചിക്കുന്ന പതിവ്, വീണ്ടും ഉപയോഗിക്കാവുന്ന എച്ച്.ടി.എം.എൽ (HTML) പോലുള്ള ഘടകങ്ങളും ആട്രിബ്യൂട്ടുകളും നിർദ്ദേശിക്കാൻ ആംഗുലർ ജെഎസ് നിർദ്ദേശങ്ങൾ നൽകുന്നു. ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്ന നിർദ്ദേശങ്ങൾ ഇവയാണ്:

ng-animate
നിലവിലുളള പ്രധാന, കസ്റ്റം ഡയറക്റ്റീവ്സുകളിലുള്ള ഒരു ജാവാസ്ക്രിപ്റ്റ്, സി.എസ്.എസ്3(CSS3) ട്രാൻസ്മിഷൻ, സി.എസ്.എസ്3 കീഫ്രെയിം, ആനിമേഷൻ ഹുക്കുകൾ എന്നിവ പിന്തുണയ്ക്കുന്നു.

എച്ച്.ടി.എം.എൽ ആട്രി ബ്യൂട്ടുകൾക്ക് ng-* എച്ച്.ടി.എം.എൽ സവിശേഷതകളിൽ സാധുതയില്ലാത്തതിനാൽ, data-ng-* എന്നതും ഒരു പ്രിഫിക്സായി ഉപയോഗി ക്കാനാകും. ഉദാഹരണത്തിന്, ആംഗുലർ ജെഎസിൽ ng-app നും data-ng-app നും പ്രമാണികതയുണ്ട്.

ng-app
ഒരു ആംഗുലർ ജെഎസ് ആപ്ലിക്കേഷൻറെ റൂട്ട് എലമെൻറ് പ്രഖ്യാപിക്കുന്നു, ഏതെങ്കിലുമൊരു ചട്ടപ്രകാരം നിർദ്ദേശാങ്കങ്ങൾ നിർദേശിക്കുവാനും,
ng-aria
സാധാരണ അരിയ(ARIA) ആട്രിബ്യൂട്ടുകളുടെ പ്രവേശനപിന്തുണയ്ക്കുള്ള ഒരു മൊഡ്യൂൾ.
ng-bind

ഒരു ഡോം വാചകം ഒരു പദപ്രയോഗത്തിൻറെ മൂല്യത്തിലേക്ക് സജ്ജീകരിക്കുന്നു. ഉദാഹരണത്തിനു്, സ്പാൻ(span)ഘടകത്തിനുള്ളിൽ 'പേര്' എന്നതിന്റെ മൂല്യം <span ng-bind="name"></span> കാണിക്കുന്നു. ആപ്ലിക്കേഷൻറെ സ്കോപ്പിലെ വേരിയബിളിന്റെ 'പേരിന്' എന്തെങ്കിലും മാറ്റമുണ്ടാകുന്നത് ഡോമി(DOM)ൽ തൽക്ഷണം പ്രതിഫലിക്കും.

ng-class
ഒരു ബൂലിയെൻ(boolean)എക്സ്പ്രഷനുകളുടെ മൂല്യം അനുസരിച്ച് വ്യവസ്ഥാപിതമായി ഒരു ക്ലാസ് പ്രയോഗിക്കുന്നു.
ng-controller
എച്ച്.ടി.എം.എൽ എക്സ്പ്രഷനുകൾ മൂല്യനിർണ്ണയം ചെയ്യുന്ന ഒരു ജാവസ്ക്രിപ്റ്റ് കൺട്രോളർ ക്ലാസ് വ്യക്തമാക്കുന്നു.
ng-if
വ്യവസ്ഥകൾ ശരിയാണെങ്കിൽ, താഴെ പറയുന്ന ഘടകങ്ങളെ ഉദ്ദീപിപ്പിക്കാൻ അടിസ്ഥാന പ്രസ്താവന വാദം നിർദ്ദേശിക്കുക. അവസ്ഥ തെറ്റാണെങ്കിൽ, ഘടകത്തെ ഡോമിൽ നിന്ന് നീക്കം ചെയ്യും. ശരിയായിരിക്കുമ്പോൾ, കംപൈൽ ചെയ്ത ഘടകത്തിൻറെ ഒരു ക്ലോൺ വീണ്ടും ചേർത്തിരിക്കുന്നു.
ng-init
ഘടകങ്ങൾ ആരംഭിക്കുമ്പോൾ ഒരിക്കൽ വിളിക്കുന്നു.
ng-model
ng-bind ന് സമാനമായ, എന്നാൽ കാഴ്ചയ്ക്കും സാധ്യതയ്ക്കുമിടയിലുള്ള രണ്ട്-രീതിയിലുള്ള ഡാറ്റ ബിൻഡിംഗ് സ്ഥാപിക്കുന്നു.
ng-model-options
മോഡൽ അപ്ഡേറ്റുകൾ എങ്ങനെ ചെയ്തു എന്നതിനായുള്ള ട്യൂൺ ചെയ്യുന്നു.
ng-repeat
ഒരു ശേഖരത്തിൽ നിന്ന് ഒരെണ്ണം എടുത്ത് ഒരിക്കൽ ഒരു ഘടകം സ്ഥാപിക്കുക.
ng-show & ng-hide
ബൂളിയൻ എക്സ്പ്രഷനുകളുടെ മൂല്യത്തെ അടിസ്ഥാനമാക്കി ഘടകഭാഗം പ്രദർശിപ്പിക്കുകയോ മറയ്ക്കുകയോ ചെയ്യുക. സി.എസ്.എസ്(CSS) ഡിസ്പ്ലേ രീതി ക്രമീകരിച്ചുകൊണ്ട് കാണിക്കുകയും മറയ്ക്കുകയും ചെയ്യുന്നു.
ng-switch
ഒരു സെലക്ഷൻ എക്സ്പ്രഷൻറെ മൂല്യം അനുസരിച്ച് ചോയ്സ് സെറ്റുകളിൽ നിന്ന് ഒരു ടെംപ്ലേറ്റായി വ്യവസ്ഥാപിതമായി നിർദ്ദേശിക്കുന്നു.
ng-view
വ്യക്തമാക്കിയ കണ്ട്രോളറുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്ന ടെംപ്ലേറ്റുകൾ റെൻഡർ ചെയ്യുന്നതിന് മുമ്പ് ജെസൺ(JSON) നിശ്ചയിക്കുന്നു. വഴികൾ കൈകാര്യം ചെയ്യാനുള്ള അടിസ്ഥാന നിർദ്ദേശം നൽകുന്നു.[12]

രണ്ട്-മാർഗ ഡാറ്റാ ബൈൻഡിംഗ്[തിരുത്തുക]

ആംഗുലർ ജെ.എസ് ടു-വേ ഡാറ്റ ഡാറ്റാ ബൈൻഡിംഗ് ആണ് ഏറ്റവും ശ്രദ്ധേയമായ സവിശേഷത. ഇത് ബാക്ക് എൻഡ് ഫലകങ്ങളുടെ(templates) ഉത്തരവാദിത്വത്തിൽ നിന്നും മോചനം നൽകുന്നു. പകരം, മാതൃകയിൽ നിർവചിക്കപ്പെട്ടിട്ടുള്ള ഒരു പരിധിയിൽ അടങ്ങിയിട്ടുള്ള ഡാറ്റ അനുസരിച്ച് ഫലക എച്ച്.ടി.എം.എൽ(HTML) ടെംപ്ലേറ്റുകൾ റെൻഡർ ചെയ്യപ്പെടും. ആംഗുലർ $scope സർവീസ് മോഡൽ ഭാഗത്ത് മാറ്റങ്ങൾ കണ്ടെത്തുകയും ഒരു കൺട്രോളർ മുഖേന കാഴ്ചയിൽ എച്.ടി.എം.എൽ എക്സ്പ്രഷനുകളെ പരിഷ്ക്കരിക്കുകയും ചെയ്യുന്നു. അതുപോലെ, കാഴ്ചപ്പാടുകളിലേക്കുള്ള ഏതു മാറ്റങ്ങളും മാതൃകയിൽ പ്രതിഫലിക്കുന്നു. ഇത് ഡോം സജീവമായി കൈകാര്യം ചെയ്യേണ്ടതും വെബ് ആപ്ലിക്കേഷനുകളുടെ ബൂട്ട്സ്ട്രാപ്പിംഗും വേഗത്തിലുള്ള പ്രോട്ടോടൈറ്റിംഗും പ്രോത്സാഹിപ്പിക്കേണ്ടതിൻറെ ആവശ്യകതയിൽ ഉൾപ്പെടുന്നു.[13] ആംഗുലർ ജെ.എസ് നിലവിലെ മൂല്യങ്ങൾ താരതമ്യപ്പെടുത്തി കൊണ്ട് മോഡലുകളിലുണ്ടാകുന്ന മാറ്റങ്ങൾ തിരിച്ചറിയുന്നു, എംബർ.ജെഎസ്(Ember.js) കൂടാതെ ബാക്ക്ബോൺ(Backbone.js)-ൽ നിന്നും വ്യത്യസ്തമായി, അശുദ്ധ-പരിശോധനാ(dirty-checking)പ്രക്രിയയിൽ മുമ്പ് മൂല്യങ്ങൾ സംഭരിച്ചുകൊണ്ട്, മോഡൽ മൂല്യങ്ങൾ മാറിക്കഴിയുമ്പോൾ ശ്രോതാക്കൾ (listeners) പ്രേരിപ്പിക്കപ്പെടുന്നു.[14]

$watch

$ വാച്ച് അശുദ്ധ പരിശോധനയ്ക്കായുള്ള ആംഗുലർ രീതിയാണ്. $ സ്കോപ്പിലുള്ള ഏതെങ്കിലും വേരിയബിൾ അല്ലെങ്കിൽ എക്സ്പ്രഷൻ ഓട്ടോമാറ്റിക്കായി ഒരു $ വാച്ച് എക്സപ്രഷൻ ആംഗുലറായി സജ്ജീകരിക്കുന്നു. അങ്ങനെ $ പരിധിക്ക് ഒരു വേരിയബിളിനെ അല്ലെങ്കിൽ ഡയറക്ടീവിസിനെ ഉപയോഗപ്പെടുത്തുന്നു, ng-if, ng-show, ng-repeat മുതലയാവ. എല്ലാം യാന്ത്രികമായി ആംഗുലർ സ്കോപ്പുകളിൽ വാച്ചുകൾ സൃഷ്ടിക്കുന്നു. $ ശ്രേണി ഓബ്ജറ്റുകളിൽ ആംഗുലറിലുള്ള ലളിതമായ ഒരു ശ്രേണി $$വാച്ചേഴസിനെ പരിപാലിക്കുന്നു.

ആംഗുലർ ജെ.എസിൽ ഒരു വാച്ചർ നിർവ്വചിക്കാനുള്ള വിവിധ മാർഗ്ഗങ്ങൾ.

  • $സ്കോപ്പിലെ ഒരു ആട്രിബ്യൂട്ട് $വാച്ച് സ്പഷ്ടമായി കാണുക.

$scope.$watch('person.username', validateUnique);

  • നിങ്ങളുടെ ടെംപ്ലേറ്റിൽ ഒരു പ്രക്ഷിപ്‌തം(interpolation)സ്ഥാപിക്കുക (നിലവിലെ $ സ്കോപ്പിൽ ഒരു വാച്ചർ സൃഷ്ടിക്കും).
  • നിങ്ങൾക്കായി വീക്ഷകനെ നിർവചിക്കാൻ ng-model പോലുള്ള നിർദ്ദേശങ്ങൾ ആവശ്യപ്പെടുക.

<input ng-model="person.username" />

$digest

$digest() ആംഗുലർ രീതിയാണ്, ആവർത്തനമായി ആംഗുലർ ജെ.എസ് നിരന്തരം ഇടവേളകളിൽ കൊണ്ടുവരുന്നു. $ഡൈജസ്റ്റ് രീതിയിൽ, ആംഗുലർ അതിൻറെ സാന്നിദ്ധ്യം / ശൈശവാവസ്ഥയിൽ മൊത്തം $വാച്ചുകൾ ആവർത്തിക്കുന്നു.

$apply

$apply() ഒരു ആംഗുലർ രീതിയാണ്, ആന്തരികമായി $ഡൈജസ്റ്റ് ആവാഹിക്കുന്നു. നിങ്ങൾ ആംഗുലർ മാനുവലായി അശുദ്ധ പരിശോധന ആരംഭിക്കാൻ ആവശ്യപ്പെടുമ്പോൾ ഈ രീതി ഉപയോഗിക്കുന്നു (എല്ലാ വാച്ചുകളും പ്രവർത്തിപ്പിക്കുക)

$destroy

$destroy ആംഗുലർ ജെ.എസിൽ ഒരു രീതിയും സംഭവവുമാണ്. $destroy() രീതി, അശുദ്ധ പരിശോധനയിൽ നിന്നും ഒരു സ്കോപ്പും എല്ലാ കുട്ടികളെയും നീക്കം ചെയ്യുന്നു. ഒരു $സ്കോപ്പ് അല്ലെങ്കിൽ $കണ്ട്രോളർ നശിപ്പിക്കപ്പെടുമ്പോൾ $destroy ഇവൻറ് ആംഗുലറാണ് വിളിക്കുന്നത്.

വികസന ചരിത്രം[തിരുത്തുക]

ഓൺലൈൻ ജെസൺ(JSON) സ്റ്റോറേജ് സേവനത്തിനു പിന്നിലുള്ള സോഫ്റ്റ് വെയർ എന്ന നിലയിൽ ബ്രാറ്റ്ടെക് എൽ.സി.സിയിലെ മിസ്കോ ഹെവിറി(Miško Hevery)[15] 2009 ൽ ആംഗുലർ ജെ.എസ് വികസിപ്പിച്ചെടുത്തു, മെഗാബൈറ്റ് ഉപയോഗിച്ച് എളുപ്പത്തിൽ ഉപയോഗിക്കാവുന്ന ആപ്ലിക്കേഷനുകൾക്കായാണ് ഇത് ഉപയോഗിക്കുന്നത്.[16] ഈ സംരംഭം "getAngular.com" എന്ന വെബ് സൈറ്റിൽ സ്ഥിതിചെയ്യുന്നു, കൂടാതെ ഏതാനും സബ്സ്ക്രൈബർമാരുണ്ടായിരുന്നു,ബിസിനസ് ആശയത്തെ ഉപേക്ഷിച്ച് ഓപ്പൺ സോഴ്സ് ലൈബ്രറിയായി ആംഗുലർ പുറത്തിറക്കാൻ തീരുമാനിക്കുന്നതിനു മുൻപായിരുന്നു അത്.

പതിപ്പുകൾ[തിരുത്തുക]

ആംഗുലർ എന്നത് ആംഗുലർ ജെ.എസിൻറെ ഇൻകോമ്പിറ്റബിൾ(ഒരു കമ്പ്യൂട്ടറിൽ ഉപയോഗിക്കുന്ന പ്രോഗ്രാം വേറൊരു കമ്പ്യൂട്ടറിൽ പ്രവർത്തിപ്പിക്കാൻ സാധിക്കാതെ വരുന്നത്‌) തിരുത്തെഴുത്താണ്. ആംഗുലർ ജെ.എസും ആംഗുലർ ഇപ്പോൾ ഒരുപോലെ പിന്തുണയ്ക്കുന്നു.

1.6[തിരുത്തുക]

ഘടകങ്ങൾ അടിസ്ഥാനമാക്കിയുള്ള ആപ്ലിക്കേഷൻ ആർക്കിടെക്ചർ എന്ന ആശയം ഉൾപ്പെടെ ആംഗുലർ ജെഎസിലുള്ള നിരവധി ആശയങ്ങളെ ഈ പതിപ്പ് ചേർത്തിട്ടുണ്ട്. മറ്റുള്ളവയിൽ ഈ റിലീസ് സാൻഡ്ബോക്സ് നീക്കം ചെയ്തു. അനേകം ഡവലപ്പർമാർക്ക് കൂടുതൽ സുരക്ഷയുണ്ടെന്ന് വിശ്വസിക്കുന്ന,അനേകം അപര്യാപ്തതകൾ ഉണ്ടായിട്ടും അത് സാൻഡ്ബോക്സിനെ മറികടന്നു. ആംഗുലർ ജെ.എസിൻറെ നിലവിലുള്ള സ്ഥിരതയുള്ള പതിപ്പ് 1.6.9 ആണ്.

പഴയ ബ്രൗസർ പിന്തുണ[തിരുത്തുക]

ആംഗുലർ ജെ.എസിൻറെ 1.2 പതിപ്പുകളും പിന്നീടുള്ള പതിപ്പുകളും ഇൻറർനെറ്റ് എക്സപ്ലോറർ പതിപ്പുകൾ 6 അല്ലെങ്കിൽ 7 പിന്തുണയ്ക്കുന്നില്ല. ഇൻറർനെറ്റ് എക്സ്പ്ലോറർ 8 ന് വേണ്ടി ആംഗുലർ ജെ.എസിൻറെ 1.3 പതിപ്പിനെ പിന്തുടർന്നു.

ആംഗുലറും ആംഗുലർ ഡാർട്ടും[തിരുത്തുക]

ആംഗുലർ 2+ പതിപ്പുകൾ ലളിതമായി ആംഗുലർ പറയുന്നു. ഇത് ടൈപ്പ് സ്ക്രിപ്റ്റ്(TypeScript)-അടിസ്ഥാനത്തിലുള്ള ഓപ്പൺ സോഴ്സ് ഫ്രണ്ട് എൻഡ് ആപ്ലിക്കേഷൻ പ്ലാറ്റ്ഫോമാണ്. 2016 ഡിസംബർ 13 ന് ആംഗുലർ 4 പ്രഖ്യാപിക്കപ്പെട്ടു. റൂട്ട് പാക്കേജിൻറെ പതിപ്പ് തെറ്റായി കണക്കാക്കുന്നത് മൂലം ആശയക്കുഴപ്പം ഇല്ലാതാക്കാൻ 3-നെ ഒഴിവാക്കി. ഇത് ഇതിനകം തന്നെ v3.3.0 ആയി വിതരണം ചെയ്തിരുന്നു. ആംഗുലർ ജെ.എസിൽ (ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിക്കു ന്നത്), ആംഗുലർ 2 / ആംഗുലർ 4 (ടൈപ്സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നത്) എന്നിവയിൽ നിന്നും വ്യത്യസ്ഥമായ സി#(സി ഷാർപ്)-ശൈലി സിൻറാക്സ് ഉപയോഗിച്ച് ഒബ്ജക്റ്റ് ഓറിയെൻറഡ്, ക്ലാസ് നിർവചിച്ചിരിക്കുന്നത്, സിംഗിൾ പാരമ്പര്യമുള്ള ഡാർട്ടിൽ ആംഗുലർ ഡാർട്ട് പ്രവർത്തിക്കുന്നു. ആങ്കുലർ 4 മാർച്ചിൽ 2017 ൽ പുറത്തിറങ്ങി, അതിന്റെ ഫ്രെയിംവർക്കിൻറെ പതിപ്പ് ഉപയോഗിച്ചിരുന്ന റൂട്ടറിൻറെ പതിപ്പ് നമ്പറുമായി ചേർന്നു. 2017 നവംബർ 1 ന് ആംഗുലർ 5 പുറത്തിറങ്ങി. ആംഗുലറിലുള്ള 5 ലെ വ്യാഖ്യാന മെച്ചപ്പെടുത്തലുകൾ പുരോഗമനോന്മുഖമായ വെബ് ആപ്ലിക്കേഷനുകൾ, വികസനങ്ങൾ ഉത്തമീകരിക്കുക, വസ്തു രൂപകൽപ്പനയുമായി ബന്ധപ്പെട്ട മെച്ചപ്പെടുത്തലുകൾ എന്നിവ ഉൾപ്പെടുന്നു. ആംഗുലർ 6 റിലീസ് മാർച്ച്, ഏപ്രിൽ മാസങ്ങളിലും, ആംഗുലർ 7 2018 സെപ്തംബർ / ഒക്ടോബർ മാസങ്ങളിലും ആയിരിക്കും. മുൻ റിലീസ് ഉപയോഗിച്ച് ഓരോ പതിപ്പും പിന്നോട്ട്-അനുഗുണമായത്(backward-compatible) പ്രതീക്ഷിക്കപ്പെടുന്നു. ആംഗുലർ ഗൂഗിൾ വർഷത്തിൽ രണ്ടുതവണ വീതം നവീകരിക്കുന്നു.

ക്രോം എക്സ്റ്റഷൻ[തിരുത്തുക]

ജൂലായ് 2012 ൽ, ആംഗുലർ നിർമ്മിച്ച വെബ് ആപ്ലിക്കേഷനുകളുടെ ഡീബഗ്ഗിംഗ് അനുഭവം മെച്ചപ്പെടുത്താൻ ഗൂഗിൾ ക്രോം ബതരാംഗ് എന്ന എക്സ്റ്റഷനു രൂപം നൽകി.

പ്രകടനം[തിരുത്തുക]

ആംഗുലർ ജെഎസ് സംഗ്രഹ ചക്രത്തിൻറെ(digest cycle)മാത‌ൃക സജ്ജമാക്കുന്നു. ഈ ചക്രം ഒരു ലൂപ്പായി കണക്കാക്കാം, എല്ലാ$scopeകളും എല്ലാ വേരിയബിളുകളിലും മാറ്റമുണ്ടെങ്കിൽ ആംഗുലർ പരിശോധിക്കുന്നു. അങ്ങനെ, $scope.myVar ഒരു കണ്ട്രോളറിൽ നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ ഈ വേരിയബിളിനെ നിരീക്ഷിക്കാനായി, ഓരോ ലൂപ്പ് ആവർത്തനത്തിലും MyVar-ലുള്ള മാറ്റങ്ങൾ ആംഗുലർ നിരീക്ഷിക്കും. ഓരോ പരിവൃത്തിയിലും $സ്കോപ്പ് വളരെയധികം വേരിയബിളുകളിൽ ആംഗുലർ ജെ.എസ് പരിശോധിക്കുമ്പോൾ ഈ സമീപനം തീർത്തും സാവധാനത്തിലാകുന്നു. ഹെവറി ഇപ്രകാരം നിർദ്ദേശിക്കുന്നു എതെങ്കിലും താൾ 2000 നിരീക്ഷകരിൽ പരിമതപ്പെടുത്തി സംരക്ഷിക്കുക.

അവലംബം[തിരുത്തുക]

  1. Earliest known releases
  2. "Release 2.2.0". GitHub. Retrieved 2016-11-16. 
  3. "Libscore". libscore.com. Retrieved 2016-10-17. 
  4. "GitHub search results sorted by number of stars". 
  5. "What Is Angular?". Retrieved 12 February 2013. 
  6. Understanding Components
  7. "Annotated ECMAScript 5.1, Section 10.2 Lexical Environments". Retrieved 2015-01-03. 
  8. name="BarendregtBarendsen">Barendregt, Henk; Barendsen, Erik (March 2000), Introduction to Lambda Calculus (PDF) 
  9. "AngularJS: Developer Guide: Scopes". Retrieved 2015-01-03. 
  10. "ECMA-262-3 in detail. Chapter 4. Scope chain". Retrieved 2015-01-03. 
  11. "Writing Directives". angularjs.org. November 28, 2012. Retrieved 2013-07-21. 
  12. Component Router
  13. "5 Awesome AngularJS Features". Retrieved 13 February 2013. 
  14. Misko Hevery. "Databinding in angularjs". Retrieved 2014-03-09. 
  15. "Hello World, <angular/> is here". Retrieved 2014-10-12. 
  16. "GetAngular". Angular / BRAT Tech. LLC. Archived from the original on 2010-04-13. Retrieved 2014-10-12.