AngularJS рдЬрд╛рджреВ: рдЖрджрд┐рдо рдкрд░ рдХрднреА рднреА рдмрд╛рдБрдз рдирд╣реАрдВ рд▓рдЯрдХрд╛

AngularJS рдХрд╛ рдЬрд╛рджреВ: рдЖрджрд┐рдо рд▓реЛрдЧреЛрдВ рдкрд░ рдХрднреА рднреА рдмрд╛рдзреНрдпрдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ



рдпрджрд┐ рдЖрдк AngularJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдмрд╛рд░-рдмрд╛рд░ рдирд┐рдпрдо рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ "рдЖрджрд┐рдореЛрдВ рдкрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд▓рдЯрдХрд╛ рди рджреЗрдВред" рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдКрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ: рдЙрди рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдирд╛ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред



рд╣рдорд╛рд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ


рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреБрд╕реНрддрдХ рдореЗрдВ рдЯреИрдЧ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЯреИрдЧ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрдиреЗ рдХрд╛ рдПрдХ рднреЛрд▓рд╛ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛:

<div ng-controller="bookCtrl"> <div ng-repeat="tag in book.tags"> <input type="text" ng-model="tag"> </div> </div>
      
      







(рдЖрдк рд╢рд╛рдпрдж рдирдП рдЯреИрдЧ рдФрд░ рдореМрдЬреВрджрд╛ рдЯреИрдЧ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВрдЧреЗред)



рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдПрдХ рдбреЗрдореЛ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рд╕рдм рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реИ рдирд╣реАрдВред рдпрджрд┐ рдЖрдк рдПрдХ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди book.tags рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред



рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЪреНрдЪрд╛ рдЧреБрдВрдЬрд╛рдЗрд╢ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ рд╕реНрдХреЛрдк рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 bookCtrl scope = { tags: [ 'foo', 'bar', 'baz' ] } ng-repeat child scopes: { tag: 'foo' }, { tag: 'bar' }, { tag: 'baz' }
      
      





рдЗрди рдЪрд╛рдЗрд▓реНрдб рд╕реНрдХреЛрдкреНрд╕ рдореЗрдВ, рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдЯреИрдЧ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рджреЛ-рддрд░рдлрд╝рд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдкрд╣рд▓реЗ рдлрд╝реАрд▓реНрдб рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдПрдирдЬреА-рдореЙрдбрд▓ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдмрдЪреНрдЪреЗ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ {рдЯреИрдЧ: 'рдХреБрдЫ'} рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреБрд╕реНрддрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред



рдЕрдм рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЖрджрд┐рдо рдЖрдкрдХреЗ рд╕рд╛рде рдПрдХ рдмреБрд░рд╛ рдордЬрд╛рдХ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рддрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЪрд╛рдЗрд▓реНрдб рд╕реНрдХреЛрдк рдореЗрдВ рдЯреИрдЧ рдмреБрдХрдЯреИрдЧ рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, tag.name) рдмрд╕ рдХрд╛рдо рдХрд░реЗрдЧрд╛ , рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ 2-рддрд░рд╣ рдХреЗ рдмрдВрдзрди рдХреЗ рдмрд┐рдирд╛ред



рд▓реЗрдХрд┐рди рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?



рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕


- рдореБрдЭреЗ рдкрддрд╛ рд╣реИ! - рдХреНрдпрд╛ рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред - рдореИрдВ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдХреЛ рд╕реАрдзреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдЯреИрдЧ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реВрдВрдЧрд╛! рдЖрдЗрдП рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

 <div ng-controller="bookCtrl"> <div ng-repeat="tag in book.tags"> <input type="text" ng-model="book.tags[$index]"> </div> </div>
      
      





рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдирдЬреА-рдореЙрдбрд▓ рдХреЛ рд╕реАрдзреЗ рдЯреИрдЧ рд╕реВрдЪреА рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░ рдФрд░ рдмрд╛рд▓-рдЧреБрдВрдЬрд╛рдЗрд╢ рдХрд╛ рдЬрд┐рдХреНрд░ рдирд╣реАрдВ рдХрд░рдХреЗ, рд╣рдордиреЗ рдЕрдкрдирд╛ рдХреЛрдб рдХрд╛рдо рдХрд┐рдпрд╛ред рдЦреИрд░, рд▓рдЧрднрдЧред рдЬреИрд╕реЗ рд╣реА рдЖрдк рдЯрд╛рдЗрдк рдХрд░реЗрдВрдЧреЗ рд╕реВрдЪреА рдХреЗ рдЕрдВрджрд░ рдХреЗ рдорд╛рди рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЕрдм рдХреБрдЫ рдФрд░ рдЧрд▓рдд рд╣реИред рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред рдХрд░реЛ, рдореИрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░реВрдВрдЧрд╛ред



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк рдПрдХ рдЪрд░рд┐рддреНрд░ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдлреЛрдХрд╕ рдЦреЛ рджреЗрддрд╛ рд╣реИред WTF?



рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рджреЛрд╖ рджреЗрдВред рджрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП, рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓ рдЧрдП рд╣реИрдВред



рд▓реЗрдХрд┐рди рдЖрджрд┐рдо (рд╕рдВрдЦреНрдпрд╛ рдФрд░ рддрд╛рд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдпрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрджрд┐рдо рдореЗрдВ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдкреБрд░рд╛рдиреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд░рд╛рд╕реНрддреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред



рдирд┐рд░реНрдгрдп


рд╣рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдореМрдЬреВрдж рддрддреНрд╡реЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рднрд▓реЗ рд╣реА рдЙрдирдХрд╛ рдЖрджрд┐рдо рдореВрд▓реНрдп рд╣реЛред рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╕реВрдЪреА рдкрд░ рдЖрджрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╕реВрдЪреА рдореЗрдВ рдЖрдЗрдЯрдо рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдХреИрд╕реЗ рд╕рд┐рдЦрд╛рдПрдВ?



рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдСрдкрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░реИрдХ рдХреЛ рдХреЛрдгреАрдп 1.2 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛:

 <div ng-controller="bookCtrl"> <div ng-repeat="tag in book.tags track by $index"> <input type="text" ng-model="book.tags[$index]"> </div> </div>
      
      





рдпрд╣ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдЕрдм рдЖрджрд┐рдо рдХреА рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рдХреНрд╕ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдЕрдм рдЯреИрдЧ рдореВрд▓реНрдп рдХреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЗрдВрдбреЗрдХреНрд╕ рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрдХ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред рдФрд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдХреЛрдгреАрдп рдХреЗ рдЬрд╛рджреВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред



рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдиреЛрдЯ: 29 рдордИ рдХреЛ рдорд╛рд╕реНрдХреЛ рдореЗрдВ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдПрдХ рд░реИрд▓реА рдЖрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рдЬрд╣рд╛рдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред



All Articles