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-show | Element рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрдм condition true рд╣реЛ |
ng-hide | Element рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ рдЬрдм condition true рд╣реЛ |
ng-if | Element рдХреЛ DOM рдореЗрдВ add/remove рдХрд░рддрд╛ рд╣реИ |
ng-repeat | List рд╕реЗ multiple elements рдмрдирд╛рддрд╛ рд╣реИ |
ng-click | рдХрд┐рд╕реА element рдкрд░ click event trigger рдХрд░рддрд╛ рд╣реИ |
ng-disabled | Button рдпрд╛ 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 JS | AngularJS |
---|---|
document.getElementById | ng-model , ng-bind |
onclick | ng-click |
innerHTML | {{ data }} |
show/hide via CSS | ng-show , ng-hide , ng-if |
loops via JS | ng-repeat |
AngularJS code рдЫреЛрдЯрд╛, readable рдФрд░ HTML-friendly рд╣реЛрддрд╛ рд╣реИред
ЁЯза рдЕрднреНрдпрд╛рд╕ рдкреНрд░рд╢реНрди (Exercise)
ng-show
рдФрд░ng-if
рдореЗрдВ рдХреНрдпрд╛ рдлрд░реНрдХ рд╣реИ?- DOM рдХреЛ modify рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AngularJS рдХреМрди-рдХреМрди рд╕реЗ directives рджреЗрддрд╛ рд╣реИ?
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 рд▓рд┐рдЦреЗ!