рдореИрдВ $ $ рдкрдЪрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ $ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ () рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рдЯрд┐рдкреНрдкрдгреА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдХреНрд╕рд░ рдкреГрд╖реНрда рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдореЙрдбрд▓ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдмрд╛рдБрдзрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд┐ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<h1 ng-bind="l10n.main_title"></h1>
<a ng-href="/edit/{{user.id}}" ng-bind="user.name"></a>
рдпреЗ рдФрд░ рдЕрдиреНрдп рдорд╛рдирдХ рдирд┐рд░реНрджреЗрд╢ рдХреГрдкрдпрд╛ рдЬрд╛рдБрдЪреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп рд╣рд░ $ рдкрдЪрдиреЗ рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд░рд▓ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рда рдХреЗ рд▓рд┐рдП:
app.directive("staticText", function() { return { restrict: "A" link: function(scope, element, attrs) { element.text(scope.$eval(attrs.customText)); } }; })
<h1 static-text="l10n.main_title"></h1>
рдкрд░рд┐рдгрд╛рдо рд╢реВрдиреНрдп рд╕реЗ рдПрдХ $ рдШрдбрд╝реА рд╣реИред
рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, GitHub рдкрд░ рджреЛ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ:
- $ рдШрдбрд╝реА рд╕реЗрдирд╛рдирд┐рдпреЛрдВ - GitHub
- рдмрд┐рдВрджреЛрдВрд╕ - рдЧреАрдард╣реБрдм
рдкрд╣рд▓рд╛ ($ рд╡реЙрдЪ рдлрд╛рдЗрдЯрд░реНрд╕) рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд╕реЗрдЯ рд╢реАрд░реНрд╖рдХ
- рд╕реЗрдЯ href
- рд╕реЗрдЯ рдкрд╛рда
- рд╕реЗрдЯ рдПрдЪрдЯреАрдПрдордПрд▓
- рд╕реЗрдЯ рд╡рд░реНрдЧ
- рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ
рджреВрд╕рд░рд╛ (рдмрд┐рдВрдбреЛрдВрд╕реЗ) рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдирд┐рд░реНрджреЗрд╢ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд╕рдордп рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗ рдПрдХ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ)ред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<div bindonce="User"> <h1 bo-text="User.name"></h1> </div>
рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ
рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд╕реНрдерд╛рдпреА $ рдШрдбрд╝реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрдм рдЗрд╕рдореЗрдВ рдкрд╛рд░рд┐рдд рдЪрд░ рдХрд╛ рдорд╛рди
рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
, рдиреЗрд╕реНрдЯреЗрдб рдмреЛ- * рдирд┐рд░реНрджреЗрд╢ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрд╕реНрдерд╛рдпреА $ рдШрдбрд╝реА рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИред
Bindonce рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдмреЛ-рдЕрдЧрд░
- рдмреЛ рд╢реЛ
- рдмреЛ-рд╣рд╛рдЗрдб
- рдмреЛ-рдкрд╛рда
- рдмреЛ-рдПрдЪрдЯреАрдПрдордПрд▓
- рдмреЛ-href
- рдмреЛ-src
- рдмреЛ рд╢реНрд░реЗрдгреА
- рдмреЛ-alt
- рдмреЛ-рд╢реАрд░реНрд╖рдХ
- рдмреЛ-рдЖрдИрдбреА
- рдмреЛ рд╢реИрд▓реА
- рдмреЛ-рдореВрд▓реНрдп
- рдмреЛ-рдЕрддреНрд░ рдмреЛ-рдЕрддреНрд░-рдлреВ
рдЖрдк
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреЗрдЬ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рд░реАрдбрдореА рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╡рд╣ рдлрд╝рдВрдХреНрд╢рди рджреВрдВрдЧрд╛ рдЬреЛ рдореБрдЭреЗ
рдпрд╣рд╛рдВ рдорд┐рд▓рд╛
рдерд╛ ред рдпрд╣ рдкреНрд░рддрд┐ рдкреГрд╖реНрда
рд▓рдЧрднрдЧ $ watch'ers рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред
(function () { var root = $(document.getElementsByTagName('body')); var watchers = []; var f = function (element) { if (element.data().hasOwnProperty('$scope')) { angular.forEach(element.data().$scope.$$watchers, function (watcher) { watchers.push(watcher); }); } angular.forEach(element.children(), function (childElement) { f($(childElement)); }); }; f(root); console.log(watchers.length); })();
рд╣рд┐рддреЛрдВ рдХреА рдЦрд╛рддрд┐рд░, рдЖрдк рд╢реВрдиреНрдп-рдШрдбрд╝реА рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд░рд╛рд╢рд┐ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреНрд╖реЗрддреНрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рдж