
рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдЬрдЯрд┐рд▓ рд╡реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реБрдП, рдЖрдк рдпрд╣ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд▓рдЧрднрдЧ рдПрдХ рддрд┐рд╣рд╛рдИ - рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдзрд╛ рдФрд░ рдЕрдзрд┐рдХ - рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рд╛рдпрддреНрдд рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЛрдо рддрддреНрд╡ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
рдХрд╛рдордХрд╛рдЬреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдиреАрдЪреЗ рдЖ рд╕рдХрддрд╛ рд╣реИ
function pageChange(){ if ($('.element-carousel').length>0) {$('.element-carousel').initCarousel()} if ($('.element-scrollbox').length>0) {$('.element-scrollbox').initScrollbox()} тАж
рдпрд╛ рдЗрд╕реЗ рдХрдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╢рд░реНрдд рдирд┐рдпрдВрддреНрд░рдХ (рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреГрд╖реНрда рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ) рдореЗрдВ рд╣рдо рдХреБрдЫ рддрддреНрд╡реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдХреЛрдб рдХреЛ рдХрд╣рддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рд╡рд╣ рдкрд░рд┐рдЪрд┐рдд рд╣реИ? рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИ? рдпрджрд┐ рдкрд╣рд▓рд╛ рдЙрддреНрддрд░ рд╣рд╛рдБ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рджреВрд╕рд░рд╛ рднреА рд╣рд╛рдБ рд╣реИред
рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ, рдмрдбрд╝реЗ рдХрд░реАрдиреЗ рд╕реЗ рдФрд░ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рджрд┐рд╢рд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ
AngularJS рдХреЗ рдкрд╛рд╕, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдПрдХ рдЕрдиреВрдареА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - рдирд┐рд░реНрджреЗрд╢ред рд▓реЗрдХрд┐рди рдЕрдм рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реИред
рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдм рдкрд░ рдерд╛
рдореИрдВ рд▓реЗрдЦ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛:
рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВред
AngularJS рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрдбрд╝рд╛, рдореЛрдЯрд╛ рдЛрдг рд╣реЛрддрд╛ рд╣реИ: рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ AngularJS рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде рдПрдХ рдПрдирдЬреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЪрд╛рд░ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рд╣реБрдЖ рдЬрд┐рд╕рдиреЗ рдПрдХ рд╣реА рдЕрд▓рдЧ рддрддреНрд╡-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдореНрдпреВрдЯреЗрд╢рдирдСрдмреНрдЬрд░реНрд╡рд░ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдбреЛрдо рдмреНрд░рд╛рдЙрдЬрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдИрд╡реЗрдВрдЯ рд╣реИрдВ) рдореНрдпреВрдЯреЗрд╢рди рдЗрд╡реЗрдВрдЯреНрд╕ (DOMSubtreeModified рдФрд░ рдЗрд╕реА рддрд░рд╣) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдкреЙрд▓реАрдлрд┐рд▓ рдХреЗ рд╕рд╛рдеред Polyfill рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ IE рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рд╕рднреА рдбреЗрд╕реНрдХрдЯреЙрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрд╢реА MutationObserver рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЗ рд╕рд╛рде рднреА, рджреЗрд╢реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдВрдбреНрд░реЙрдЗрдб 2.3 рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреБрдЦреА рд╣реИ, рд▓реЗрдХрд┐рди 4.0 рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд╕рдЦреНрддреА рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред
рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, "рдореИрдиреБрдЕрд▓" - рдХреЙрд▓ рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдирд┐рд░реНрджреЗрд╢рди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрдирд╛ - рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди IE6 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдореЛрдмрд╛рдЗрд▓ рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред
рд╢реБрд░реБрдЖрдд
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
directive('name', function(node){ alert("i'm alive!") })
рдкрд╣рд▓реЗ рддреЛ рдЗрд╕реЗ рд▓рдХреНрд╖реНрдп рддрддреНрд╡ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЙрд▓рдмреИрдХ (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ var _this = рдпрд╣ рд╣рд░ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдерд╛) рдХреЗ рдХрд╛рд░рдг, рдЗрд╕реЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
directive('name', { load: function(node){}, unload: function(node){} })
рд▓реЛрдб рдШрдЯрдирд╛ рдПрдХ рдирд┐рд░реНрджреЗрд╢ (рдПрдХ рддрддреНрд╡ рдирд╣реАрдВ) рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЙрддрд░рд╛рдИ рдЗрд╕рдХреЗ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред
рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде рдареАрдХ рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдпрд╛ рддреЛ рд╢реБрд░реВ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдпрд╛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг - рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рддрддреНрд╡ рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ
<div class="container something">
рдкрд░
<div class="container test something">
рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ
рдЗрд╕рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдорд┐рд▓рд╛ред рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:
directive('name', { load: function(){ this.interval = setInterval(function(){}, 1000) }, unload: function(){ clearInterval(this.interval) } })
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рддрд░реАрдХреЗ рдмрдирд╛рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдХреНрд░рдордг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕реНрдХреЛрдк рд╕реНрд╡рдпрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ - рдпрд╣ рдиреЛрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ - рдЗрд╕рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдиреЛрдб рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЗ рдмрдирд╛рдирд╛ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
directive('name', function(){ this.publicMethod = function(a){alert(a)} })
HTML рд╕рд┐рдВрдЯреИрдХреНрд╕
рдХрдХреНрд╖рд╛рдУрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЯреИрдЧ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЙрдкрд╕рд░реНрдЧ 'рдбреЗрдЯрд╛ -' рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рдиреНрдпрд╛рд╕рдХрд░реНрддрд╛ рджреВрд╕рд░реЗ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЪреВрдХ рдХрд░рддрд╛ рд╣реИ - 'рдирд┐рд░реНрджреЗрд╢'! ') рдпрд╣ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдХреНрд╖рд╛рдПрдВ: div class = "рдирд┐рд░реНрджреЗрд╢-рд╕реНрдХреНрд░реЙрд▓рдмреЙрдХреНрд╕" div class = "рд╕реНрдХреНрд░реЙрд▓рдмреЙрдХреНрд╕") рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
<div class="name"/> <div class="data-name"/> <div name/> <div data-name="john"/> <name/> <data-name first-name="john" last-name="doe">
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдЦреБрдж рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереА, рдирд┐рд░реНрджреЗрд╢-рдЯреИрдЧ рдХреЗ рд▓рд┐рдП - рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 'рдЬреЙрди' рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рджреВрд╕рд░реЗ рдореЗрдВ - {'рдкреНрд░рдердо-рдирд╛рдо': 'рдЬреЙрди', 'рдЕрдВрддрд┐рдо-рдирд╛рдо': 'рдбреЛ'}ред
рдЕрдзрд┐рдХ "рд╕реНрдорд╛рд░реНрдЯ" рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдП, "рд╢реЙрд░реНрдЯ" рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ: рдЖрдк рдирд╛рдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ = "рдкрд╣рд▓рд╛: 'рдЬреЙрди', jast: 'doe'"ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рдХреБрдЫ рдЕрдВрджрд░ рд╣реЛрддрд╛ рд╣реИ
try {value = eval( '{' + value + '}' )} try {value = eval( value )} return value
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХреЙрд▓рдмреИрдХ рд╣реИ:
directive('name', { alter: function(){} }
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢
directive('include', function(node, path){ $.get(path, function(data){node.innerHTML = data}) })
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рджреЛрд╣рд░рд╛рдИ рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд▓реЛрдб рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдлрд┐рд░ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдЙрдкрдХрд░рдг рдорд┐рд▓рд╛ рдЬреЛ рд╣рдореЗрдВ рддрддреНрд╡-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреАрдЬреЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг
рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрдбрд╝реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ, рд╕рдмрд╕реЗ рд╕реБрдЦрдж рдореЗрдВ рд╕реЗ рдПрдХ
рд╕реНрдХреНрд░реЙрд▓рдмреЙрдХреНрд╕ рд╣реИ , рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд "рдЖрд╡рд░рдг" рдЬреЛ рддрддреНрд╡ рдкрд░ рдПрдХ рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░реЙрд▓ рд▓рдЯрдХрд╛рддрд╛ рд╣реИред
JsFiddle рдЙрджрд╛рд╣рд░рдгрдФрд░ рдпрд╣рд╛рдВ
рдбреНрд░реИрдЧ-рдПрди-рдбреНрд░реЙрдк рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ
рддрд░реАрдХрд╛ рд╣реИ ред рдмрд╕ рдЧреНрд░реЗ рд╡рд░реНрдЧ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдЦреАрдВрдЪреЗрдВред
JsFiddle рдЙрджрд╛рд╣рд░рдгрд╣рд╛рдВ, рдХреЛрдб рдереЛрдбрд╝рд╛ рдмрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк jQuery рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд▓рдЧрднрдЧ 2 рдЧреБрдирд╛ рдХрдо рд╣реЛрдЧрд╛ред
рдФрд░ рдпрд╣рд╛рдБ рд╣рдм рдкрд░ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЖрдХрд░реНрд╖рдг рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдкреИрдирд▓ рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдХрд┐рд╕реА рднреА рдХреНрд▓реЛрди рдХрд┐рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреАрдЯ рд╡реИрд▓реНрдпреВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рддрддреНрд╡ рдПрдХрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдк рдлрд┐рд░ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
JsFiddle рдЙрджрд╛рд╣рд░рдгрдЬреЛ рд▓реЛрдЧ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреЛрдиреЗрдЬреЗрдПрд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП - рдпрд╣рд╛рдБ рдкрд░ рдиреНрдпреВрдирддрдо рдФрд░ рдирд┐рдпрдорд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ:
рдХреЙрд░реНрдирд░рдЬреЗрдПрд╕ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдСрди рдЬреАрдердм