Angular JS Tutorial

AngularJS DOM

ЁЯУМ DOM рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

DOM (Document Object Model) HTML рдХрд╛ programming version рд╣реЛрддрд╛ рд╣реИред
Browser HTML page рдХреЛ DOM рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ рддрд╛рдХрд┐ JavaScript рдЬреИрд╕реЗ languages рдЙрд╕рд╕реЗ interact рдХрд░ рд╕рдХреЗрдВред

рдЖрд╕рд╛рди рднрд╛рд╖рд╛ рдореЗрдВ: HTML рдХреЛ JavaScript рдХреЗ рд▓рд┐рдП “рдЬрд╝рд┐рдВрджрд╛ рдФрд░ interactive” рдмрдирд╛рдиреЗ рдХрд╛ рдирд╛рдо рд╣реИ тАФ DOM.


ЁЯУМ AngularJS DOM рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

AngularJS DOM рдХреЛ control рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  • Special directives рджреЗрддрд╛ рд╣реИ
  • Conditions, loops, events рдФрд░ animations handle рдХрд░рддрд╛ рд╣реИ
  • DOM elements рдХреЛ create, hide, repeat, рдпрд╛ modify рдХрд░рддрд╛ рд╣реИ тАФ рдмрд┐рдирд╛ рд╕реАрдзреЗ document.getElementById() рдЬреИрд╕реА traditional JS рдХреЗ

ЁЯОп DOM рдХреЛ Control рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ Common AngularJS Directives

DirectiveрдХрд╛рдо
ng-showElement рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрдм condition true рд╣реЛ
ng-hideElement рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ рдЬрдм condition true рд╣реЛ
ng-ifElement рдХреЛ DOM рдореЗрдВ add/remove рдХрд░рддрд╛ рд╣реИ
ng-repeatList рд╕реЗ multiple elements рдмрдирд╛рддрд╛ рд╣реИ
ng-clickрдХрд┐рд╕реА element рдкрд░ click event trigger рдХрд░рддрд╛ рд╣реИ
ng-disabledButton рдпрд╛ input рдХреЛ disable рдХрд░рддрд╛ рд╣реИ

тЬЕ Example 1: ng-show, ng-hide

<div ng-app="" ng-init="isVisible=true">
  <button ng-click="isVisible = !isVisible">Toggle</button>
  <p ng-show="isVisible">This is visible when isVisible is true.</p>
</div>

Output: рдмрдЯрди рд╕реЗ paragraph рд╢реЛ/рд╣рд╛рдЗрдб рд╣реЛрддрд╛ рд╣реИред


тЬЕ Example 2: ng-if (DOM рд╕реЗ completely remove/add)

<div ng-app="" ng-init="showMsg=true">
  <button ng-click="showMsg = !showMsg">Toggle Message</button>
  <p ng-if="showMsg">Hello, I exist only in DOM when true!</p>
</div>

ng-if рдЬрдм false рд╣реЛрддрд╛ рд╣реИ рддреЛ DOM рд╕реЗ element рд╣рдЯ рдЬрд╛рддрд╛ рд╣реИ (inspect рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦреЗрдЧрд╛)


тЬЕ Example 3: ng-repeat (Dynamic Elements in DOM)

<div ng-app="" ng-init="fruits=['Apple','Banana','Mango']">
  <ul>
    <li ng-repeat="fruit in fruits">{{ fruit }}</li>
  </ul>
</div>

Output: List DOM рдореЗрдВ dynamic рддрд░реАрдХреЗ рд╕реЗ рдмрдиреЗрдЧреАред


тЬЕ Example 4: ng-click (User Event рд╕реЗ DOM рдмрджрд▓рдирд╛)

<div ng-app="" ng-init="count=0">
  <button ng-click="count = count + 1">Click Me</button>
  <p>You clicked: {{ count }} times</p>
</div>

DOM рдореЗрдВ count update рд╣реЛрддрд╛ рд░рд╣реЗрдЧрд╛ред


ЁЯФз AngularJS рдореЗрдВ Direct DOM Access рдХрдм рдХрд░реЗрдВ?

AngularJS рдХрд╛ philosophy рд╣реИ тАФ тАЬDon’t touch the DOM directlyтАЭ
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЬрд╝рд░реВрд░рдд рд╣реЛ, рддреЛ $element, directive, рдпрд╛ $compile рдХрд╛ use рдХрд░рдХреЗ рдЖрдк DOM access рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (Advanced topic).


ЁЯУж AngularJS vs Traditional JS DOM Handling

Traditional JSAngularJS
document.getElementByIdng-model, ng-bind
onclickng-click
innerHTML{{ data }}
show/hide via CSSng-show, ng-hide, ng-if
loops via JSng-repeat

AngularJS code рдЫреЛрдЯрд╛, readable рдФрд░ HTML-friendly рд╣реЛрддрд╛ рд╣реИред


ЁЯза рдЕрднреНрдпрд╛рд╕ рдкреНрд░рд╢реНрди (Exercise)

  1. ng-show рдФрд░ ng-if рдореЗрдВ рдХреНрдпрд╛ рдлрд░реНрдХ рд╣реИ?
  2. DOM рдХреЛ modify рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AngularJS рдХреМрди-рдХреМрди рд╕реЗ directives рджреЗрддрд╛ рд╣реИ?
  3. ng-repeat рдХрд╛ рдХреНрдпрд╛ рдХрд╛рдо рд╣реИ DOM рдореЗрдВ?

тЬЕ рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╕реАрдЦрд╛?

  • DOM рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ AngularJS рдЙрд╕рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • ng-show, ng-hide, ng-if, ng-click, ng-repeat рдЬреИрд╕реЗ directives
  • AngularJS рдХреЗ DOM interaction JavaScript рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ
  • Realtime examples рдФрд░ practical use cases

ЁЯОп рдЕрдм рдЖрдк AngularJS рд╕реЗ DOM рдХреЛ рд╕рд╛рдлрд╝, structured рдФрд░ interactive рддрд░реАрдХреЗ рд╕реЗ manage рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ тАФ рдмрд┐рдирд╛ рд▓рдВрдмрд╛ JavaScript code рд▓рд┐рдЦреЗ!