Angular.js: <input/>рдЬрдм рдПрдирдЬреА-рдореЙрдбрд▓ рд╕реАрдзреЗ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдРрд░реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рддреЛ рдлреЛрдХрд╕ рдЦреЛ рджреЗрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдирд╡ре░ 2015  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/angular.js

рдореЗрд░реЗ рдкрд╛рд╕ <input> рдЕрдВрджрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг <div ng-repeat...">

рдЬреИрд╕реЗ рд╣реА рдореИрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реВрдВ <input> рдлреЛрдХрд╕ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ _each_ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдВрджрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдореИрдВ рджрд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдХреЛрдб рдХрд╛ рд╕рд╛рд░ рд╣реИ:

<div ng-repeat="item in items">
    <input ng-model="items[$index]">
</div>

рд╣рд╛рд▓рд╛рдВрдХрд┐, <input> ng-repeat рджрд╛рдпрд░реЗ рдХреЗ рдЕрдВрджрд░ рд▓реЗрдХрд┐рди рдЬреЛ рд╕реАрдзреЗ ng-repeat рд╕рд░рдгреА рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдореИрдВ рдкреВрд░реЗ рджрд┐рди рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

<div ng-repeat="item in items">
    <input ng-model="george">
</div>

рдиреЛрдЯ: рд╕рдорд╕реНрдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ ng-model рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬреЛ рд╕реАрдзреЗ рдЖрдЗрдЯрдо рд╕рд░рдгреА рдореЗрдВ $index -th рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдПрдХ $рдШрдбрд╝реА рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдлреЛрдХрд╕ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ codepen рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
http://codepen.io/djmarcus/pen/bVZGvj

рдпрд╣рд╛рдБ рдПрдХ рдЖрд╕рд╡рди рд╣реИ:

    <div ng-controller="myCtrl">
        <div ng-repeat="item in items">
          <div>This fails</div>
          <div layout="row" layout-align="start center">
            <input ng-model="items[$index]"  label=""> 
          </div>
        </div>

        <div ng-repeat="item in items">
          <div>This works</div>
          <div layout="row" layout-align="start center">
            <input ng-model="george"  label=""> 
          </div>
        </div>

        <div>This works (its outside of ng-repeat) </div>
        <input ng-model="harvey" label="">
    </div>
ngRepeat investigation

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ @Narretz рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк рдПрдХ рд╕рд░рдгреА рдкрд░ рджреЛрд╣рд░рд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рд╕рд░рдгреА рдХреЗ рдЖрдЗрдЯрдо рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдЖрдЗрдЯрдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИрдВ, рдЬреЛ рдЬреЗрдПрд╕ рдореЗрдВ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ "рдореВрд▓реНрдп рд╕реЗ" рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ)ред рдЪреВрдВрдХрд┐ рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдкреБрд░рд╛рдиреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдбреАрдУрдПрдо рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирдП рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдлреЛрдХрд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред

рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:

  1. ngRepeat рдХреЗ рдЪрд╛рдЗрд▓реНрдб рд╕реНрдХреЛрдк рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╕реНрдерд╛рдиреАрдп item рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рджрд░рдЕрд╕рд▓, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ 2-рд╡реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд┐рдХрд▓реНрдк 2 рдпрд╛ 3 рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

html <div ng-repeat="item in items"> <input type="text" ng-model="item" /> </div>

  1. track by $index рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдпрд╛рдиреА рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЗрдЯрдо рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ):

html <div ng-repeat="item in items track by $index"> <input type="text" ng-model="items[$index]" /> </div>

  1. рдЕрдкрдиреЗ рддрд╛рд░реЛрдВ рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВред рдЬреИрд╕реЗ items = [{value: 'string1'}, {value: 'string2'}, ...] :

html <div ng-repeat="item in items"> <input type="text" ng-model="items[$index].value" /> </div>

рдЖрдк рдЗрд╕ рдбреЗрдореЛ рдкреЗрди рдореЗрдВ рд╕рднреА 3 рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджрд╛ рддреИрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рджреЛрд╣рд░рд╛рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХрд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЪреВрдВрдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреЛрдИ DOM рдкреБрди: рдХреНрд░рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ @Narretz рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк рдПрдХ рд╕рд░рдгреА рдкрд░ рджреЛрд╣рд░рд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рд╕рд░рдгреА рдХреЗ рдЖрдЗрдЯрдо рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдЖрдЗрдЯрдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИрдВ, рдЬреЛ рдЬреЗрдПрд╕ рдореЗрдВ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ "рдореВрд▓реНрдп рд╕реЗ" рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ)ред рдЪреВрдВрдХрд┐ рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдкреБрд░рд╛рдиреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдбреАрдУрдПрдо рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирдП рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдлреЛрдХрд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред

рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:

  1. ngRepeat рдХреЗ рдЪрд╛рдЗрд▓реНрдб рд╕реНрдХреЛрдк рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╕реНрдерд╛рдиреАрдп item рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рджрд░рдЕрд╕рд▓, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ 2-рд╡реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд┐рдХрд▓реНрдк 2 рдпрд╛ 3 рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

html <div ng-repeat="item in items"> <input type="text" ng-model="item" /> </div>

  1. track by $index рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдпрд╛рдиреА рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЗрдЯрдо рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ):

html <div ng-repeat="item in items track by $index"> <input type="text" ng-model="items[$index]" /> </div>

  1. рдЕрдкрдиреЗ рддрд╛рд░реЛрдВ рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВред рдЬреИрд╕реЗ items = [{value: 'string1'}, {value: 'string2'}, ...] :

html <div ng-repeat="item in items"> <input type="text" ng-model="items[$index].value" /> </div>

рдЖрдк рдЗрд╕ рдбреЗрдореЛ рдкреЗрди рдореЗрдВ рд╕рднреА 3 рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рдж @gkalpakред рдЖрдк рд╕рд╣реА рд╣реИрдВ, рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред

рдореИрдВрдиреЗ рд╡рд┐рдХрд▓реНрдк #3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж (рдЕрдВрдд рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ)ред

рдЕрдЧрд░ рдПрдВрдЧреБрд▓рд░ 'рдЧреЙрдЪрд╛' рдореБрджреНрджреЛрдВ рдкрд░ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рдереЗ рддреЛ рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ .. рдпрд╣ рдЙрд╕ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИред

рдЯреАрдмреАрдПрдЪ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рд╡рд┐рдХрд▓реНрдк # 1 рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рддрд░рд╣ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ - рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ (рдпрджрд┐ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░рдг рд╣реИ)ред

рд╡рд┐рдХрд▓реНрдк # 1 (рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдбрдкреЗрди рдореЗрдВ рдХреЛрдбрд┐рдд рд╣реИ) рд╡рд╣ рд╣реИ рдЬреЛ рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ (рдХрдо рд╕реЗ рдХрдо рдЬрдм рдореИрдВ рдЗрд╕реЗ рдХреЛрдбрдкреЗрди рдореЗрдВ рдЖрдЬрд╝рдорд╛рддрд╛ рд╣реВрдВ) ... рд╢рд╛рдпрдж рдЖрдкрдХрд╛ рдорддрд▓рдм рдХреЛрдбрдкреЗрди рдореЗрдВ рдХреБрдЫ рдЕрд▓рдЧ рдерд╛?

рдлрд┐рд░ рднреА, рд╡рд┐рдХрд▓реНрдк #3 рдореЗрд░реЗ рдХреЛрдб рд╕реЗ рд╕рдмрд╕реЗ рдирд┐рдХрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЬрд┐рд╕ рд╕рд░рдгреА рдкрд░ рдореИрдВ ng-repeat рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ (рд╕рд╛рдзрд╛рд░рдг рддрд╛рд░ рдирд╣реАрдВ) рдЬрд╣рд╛рдВ рдореЗрд░реА рд░реБрдЪрд┐ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╣реИ .. рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк # 3 рдПрдХ рдЕрдЪреНрдЫрд╛ рдореИрдЪ рд╣реИред

[рд╡рд┐рдХрд▓реНрдк #1] рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ (рдХрдо рд╕реЗ рдХрдо рдЬрдм рдореИрдВ рдЗрд╕реЗ рдХреЛрдбрдкреЗрди рдореЗрдВ рдЖрдЬрд╝рдорд╛рддрд╛ рд╣реВрдВ)

рдЙрдлрд╝, рддреБрдо рд╕рд╣реА рд╣реЛред рд╡рд┐рдХрд▓реНрдк #1 ngModel рдорд╛рдзреНрдпрдо рд╕реЗ 2-рддрд░рдлрд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
(рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдЕрдкрдбреЗрдЯ рдХреАред)

рджреГрд╖реНрдЯрд┐рдХреЛрдг #2 @gkalpak рджреНрд╡рд╛рд░рд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдПрдВрдЧреБрд▓рд░ 2 рдореЗрдВ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдереАред рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдпрджрд┐ рдЖрдк рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реИрдВ рдФрд░ рдПрдВрдЧреБрд▓рд░ 2 рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рджреЛ рддрд░рд╣ рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреЗрд╡рд▓ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрд╛рдВрдзреЗрдВ рдФрд░ 'рдЗрдирдкреБрдЯ' рдХреЗ рдмрдЬрд╛рдп 'рдкрд░рд┐рд╡рд░реНрддрди' рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдИрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВ

рдЙрджрд╛рд╣рд░рдг:

// Instead of writing
<div *ngFor="let param of params.value; let id = index;">
    <input type="text" placeholder="0" [(ngModel)]="params.value[id]">
</div

// Write
<div *ngFor="let param of params.value; let id = index;">
    <input type="text" placeholder="0" [ngModel]="params.value[id]" (change)="onValueUpdate($event, id)">
</div>

рдФрд░ рдорд╛рди рдХреЛ onValueUpdate рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рдЪреВрдВрдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдХреЗрд╡рд▓ рддрднреА рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рдЗрдирдкреБрдЯ рд╕реЗ рдзреБрдВрдзрд▓рд╛ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдм рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж @gkalpak
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдореИрдВ рд╡рд┐рдХрд▓реНрдк 3 рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖред рдпрд╣ рдХреЛрдгреАрдп 4 рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

nosideeffects picture nosideeffects  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

awerlang picture awerlang  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

visnup picture visnup  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

landed1 picture landed1  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

butchpeters picture butchpeters  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ