Ember.js: #each рд░реА-рд░реЗрдВрдбрд░ рдмрдЧ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рд╕рд┐рддре░ 2018  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: emberjs/ember.js

рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд╣реА / рдЧрд▓рдд / рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд╕рд░рдгреА рддрддреНрд╡ рдХреЛ рдпрд╛ рд╕рддреНрдп рд╕реЗ рдмрджрд▓рддреЗ рд╕рдордп, рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА рд╕реВрдЪреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд (рд╕реВрдЪрдХрд╛рдВрдХ + 1) рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рд╣реБрдП рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред
рдХреЛрдб:

{{#each range as |value idx|}}
  <label><input type="checkbox" checked={{value}} {{action makeChange idx on="change"}}>{{idx}}: {{value}}</label><br/>
{{/each}}

рдЬрдм рдореИрдВ {{#each range key="@index" as |value idx|}} рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЯреНрд╡реАрдбрд▓: https://ember-twiddle.com/6d63548f35f99da19cee9f58fb64db59

embereach

Bug Has Reproduction Rendering

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЧрдВрджрдЧреА рдХрд╛ mess рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ (рд╕реАрдорд╛ рд░реЗрдЦрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рддреНрд░реБрдЯрд┐) рдиреЗ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реИ / рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╣реИред

рдкреНрд░рдореБрдЦ ЁЯФС

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ key рдкреИрд░рд╛рдореАрдЯрд░ {{#each}} ред рдЯреАрдПрд▓; рдбреАрдЖрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореМрдЬреВрджрд╛ рдбреЛрдо рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдм рдФрд░ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛, рдмрдирд╛рдо рдЦрд░реЛрдВрдЪ рд╕реЗ рдбреЛрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ред

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

рдЪрд▓реЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрдЬрд╛рдп рд╕рд░рд▓ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

<ul>
  {{#each this.names as |name|}}
    <li>{{name.first}} {{to-upper-case name.last}}</li>
  {{/each}}
</ul>

рдпрджрд┐ this.names рд╣реИ ...

[
  { first: "Yehuda", last: "Katz" },
  { first: "Tom", last: "Dale" },
  { first: "Godfrey", last: "Chan" }
]

рддрдм рдЖрдкрдХреЛ рдорд┐рд▓реЗрдЧрд╛ ...

<ul>
  <li>Yehuda KATZ</li>
  <li>Tom DALE</li>
  <li>Godfrey CHAN</li>
</ul>

рдЕрдм рддрдХ рд╕рдм рдареАрдХ рд╣реИред

рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рд▓рд╛рдЧреВ рдХрд░рдирд╛

рдЕрдм рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рд╕реВрдЪреА рдореЗрдВ { first: "Andrew", last: "Timberlake" } рдЬреЛрдбрд╝ рджреЗрдВ? рд╣рдо рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд DOM рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ:

<ul>
  <li>Yehuda KATZ</li>
  <li>Tom DALE</li>
  <li>Godfrey CHAN</li>
  <li>Andrew TIMBERLAKE</li>
</ul>

рдкрд░ рдХреИрд╕реЗ_?

{{#each}} рд╕рд╣рд╛рдпрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рднреЛрд▓рд╛ рддрд░реАрдХрд╛ рд╣рд░ рдмрд╛рд░ рд╕реВрдЪреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕реВрдЪреА рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо 23 рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

  • 3 <li> рдиреЛрдб рдирд┐рдХрд╛рд▓реЗрдВ
  • 4 <li> рдиреЛрдб рдбрд╛рд▓реЗрдВ
  • 12 рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдбреНрд╕ рдбрд╛рд▓реЗрдВ (рдкрд╣рд▓реЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ, рдмреАрдЪ рдХреЗ рд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдВрддрд┐рдо рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ, 4 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛)
  • 4 рдмрд╛рд░ to-upper-case рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ

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

Ex @index

рдПрдХ рдмреЗрд╣рддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреЛрдИ рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ key="@index" рдХрд░рддрд╛ рд╣реИ:

  1. рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рд╡рд╕реНрддреБ { first: "Yehuda", last: "Katz" } рддреБрд▓рдирд╛ рдХрд░реЗрдВ, <li>Yehuda KATZ</li> :
    1.1ред "рдпреЗрд╣реБрджрд╛" === "рдпреЗрд╣реБрджрд╛", рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
    1.2ред (рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдбрд╛рдпрдиреЗрдорд┐рдХ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рддреБрд▓рдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)
    1.3ред "рдХрд╛рдЯреНрдЬрд╝" === "рдХрд╛рдЯреНрдЬрд╝", рдЪреВрдВрдХрд┐ рд╕рд╣рд╛рдпрдХ "рд╢реБрджреНрдз" рд╣реИрдВ, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ to-upper-case рд╕рд╣рд╛рдпрдХ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЖрд╣реНрд╡рд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрд╕ рд╕рд╣рд╛рдпрдХ ("KATZ") рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ ) _also_ рдирд╣реАрдВ рдмрджрд▓рд╛, рддреЛ рдпрд╣рд╛рдБ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ
  2. рдЗрд╕реА рддрд░рд╣, рдкрдВрдХреНрддрд┐ 2 рдФрд░ 3 рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
  3. DOM рдореЗрдВ рдХреЛрдИ рдЪреМрдереА рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбрд╛рд▓реЗрдВ
    3.1ред <li> рдиреЛрдб рдбрд╛рд▓реЗрдВ
    3.2ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("рдПрдВрдбреНрд░рдпреВ")
    3.3ред рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб (рд╕реНрдкреЗрд╕) рдбрд╛рд▓реЗрдВ
    3.4ред to-upper-case рд╕рд╣рд╛рдпрдХ ("рдЯрд┐рдореНрдмрд░рд▓реЗрдХ" -> "TIMBERLAKE") рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдВ
    3.5ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("TIMBERLAKE")

рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рддреБрд▓рдирд╛рдУрдВ рдХреА рд▓рд╛рдЧрдд рдкрд░ 23 рд╕реЗ 5 (w рд╣рд╛рде рд▓рд╣рд░рд╛рддреЗ рд╣реБрдП) рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рдорд╛рди рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдмрд╛рдХреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╕реНрддреЗ рд╣реИрдВред рдмреБрд░рд╛ рдирд╣реАрдВред

рд╕реВрдЪреА рдореЗрдВ рдХрд┐рд╕реА рдЖрдЗрдЯрдо рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛

рд▓реЗрдХрд┐рди рдЕрдм, рдЕрдЧрд░ рд╕реВрдЪреА рдореЗрдВ _appending_ { first: "Andrew", last: "Timberlake" } рдмрдЬрд╛рдп, рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ? рд╣рдо рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд DOM рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ:

<ul>
  <li>Andrew TIMBERLAKE</li>
  <li>Yehuda KATZ</li>
  <li>Tom DALE</li>
  <li>Godfrey CHAN</li>
</ul>

рдкрд░ рдХреИрд╕реЗ_?

  1. рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рд╡рд╕реНрддреБ { first: "Andrew", last: "Timberlake" } рддреБрд▓рдирд╛ рдХрд░реЗрдВ, <li>Yehuda KATZ</li> :
    1.1ред "рдПрдВрдбреНрд░рдпреВ"! == "рдпреЗрд╣реБрджрд╛", рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
    1.2ред (рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдбрд╛рдпрдиреЗрдорд┐рдХ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рддреБрд▓рдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)
    1.3ред "рдЯрд┐рдореНрдмрд░рд▓реЗрдХ"! == "рдХрд╛рдЯреНрдЬрд╝", to-upper-case рд╕рд╣рд╛рдпрдХ рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ
    1.4ред "KATZ" рд╕реЗ "TIMBERLAKE" рддрдХ рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
  2. рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ { first: "Yehuda", last: "Katz" } рдХреА рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐, <li>Tom DALE</li> , рдПрдХ рдФрд░ 3 рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВ
  3. рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реА рд╡рд╕реНрддреБ { first: "Tom", last: "Dale" } рддреБрд▓рдирд╛ рдХрд░реЗрдВ, <li>Godfrey CHAN</li> , рдПрдХ рдФрд░ 3 рдСрдкрд░реЗрд╢рди
  4. DOM рдореЗрдВ рдХреЛрдИ рдЪреМрдереА рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбрд╛рд▓реЗрдВ
    3.1ред <li> рдиреЛрдб рдбрд╛рд▓реЗрдВ
    3.2ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("рдЧреЙрдбрдлреНрд░реЗ")
    3.3ред рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб (рд╕реНрдкреЗрд╕) рдбрд╛рд▓реЗрдВ
    3.4ред to-upper-case рд╕рд╣рд╛рдпрдХ ("рдЪрд╛рди" -> "рдЪрд╛рди") рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ
    3.5ред рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб ("CHAN") рдбрд╛рд▓реЗрдВ

рд╡рд╣ 14 рдСрдкрд░реЗрд╢рди рд╣реИред рдЖрдЙрдЪ!

Ity @ рдШрдЯрдирд╛

рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЪрд╛рд╣реЗ рд╣рдо рдкреНрд░реАрдкреЗрдб рд╣реЛ рдпрд╛ рдЕрдкреАрд▓ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рд╣рдо рдЕрднреА рднреА рд╕рд░рдгреА рдореЗрдВ рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ (рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдореЗрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд╛рде рд╣реА рд╣рдордиреЗ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рднреА рдХрд┐рдпрд╛ рд╣реИред

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ key="@identity" рдЖрддрд╛ рд╣реИред рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЗ _order_ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЙрдирдХреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╕реНрддреБ рдкрд╣рдЪрд╛рди ( === ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

  1. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рдкрд╣рд▓реА рд╡рд╕реНрддреБ { first: "Andrew", last: "Timberlake" } ред рдЪреВрдБрдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛, рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ (рдкреВрд░реНрд╡-рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ):
    1.1ред <li> рдиреЛрдб рдбрд╛рд▓реЗрдВ
    1.2ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("рдПрдВрдбреНрд░рдпреВ")
    1.3ред рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб (рд╕реНрдкреЗрд╕) рдбрд╛рд▓реЗрдВ
    1.4ред to-upper-case рд╕рд╣рд╛рдпрдХ ("рдЯрд┐рдореНрдмрд░рд▓реЗрдХ" -> "TIMBERLAKE" рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ)
    1.5ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("TIMBERLAKE")
  2. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рджреВрд╕рд░реА рд╡рд╕реНрддреБ { first: "Yehuda", last: "Katz" } ред рдкрд╛рдпрд╛ <li>Yehuda KATZ</li> :
    2.1ред "рдпреЗрд╣реБрджрд╛" === "рдпреЗрд╣реБрджрд╛", рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
    2.2ред (рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдбрд╛рдпрдиреЗрдорд┐рдХ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рддреБрд▓рдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)
    2.3ред "рдХрд╛рдЯреНрдЬрд╝" === "рдХрд╛рдЯреНрдЬрд╝", рдХреНрдпреЛрдВрдХрд┐ рд╕рд╣рд╛рдпрдХ "рд╢реБрджреНрдз" рд╣реИрдВ, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ to-upper-case рд╕рд╣рд╛рдпрдХ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЖрд╣реНрд╡рд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрд╕ рд╕рд╣рд╛рдпрдХ ("KATZ") рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ ) _also_ рдирд╣реАрдВ рдмрджрд▓рд╛, рддреЛ рдпрд╣рд╛рдБ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ
  3. рдЗрд╕реА рддрд░рд╣, рдЯреЙрдо рдФрд░ рдЧреЙрдбрдлреНрд░реЗ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
  4. рдмреЗрдЬреЛрдбрд╝ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ (рдХреЛрдИ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ)

рдЙрд╕ рдХреЗ рд╕рд╛рде, рд╣рдо рдЗрд╖реНрдЯрддрдо 5 рдСрдкрд░реЗрд╢рди рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдП рд╣реИрдВред

рдЖрдиреБрдкрд╛рддрд┐рдХ рджрд░реЛрдВ рд╕реЗ рдмрдврд╝рд╛рдПрдБ

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

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдРрдк рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рддреБрд▓рдирд╛ рдФрд░ рдкреБрд╕реНрддрдХ-рд░рдЦрдиреЗ рдХреА рд▓рд╛рдЧрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдХреЗ рдмрд╛рдж рд╕реЗ key="@identity" рдПрдВрдмрд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо, рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрдЧреА key рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп {{#each}} ред

рдЯрдХрд░рд╛рд╡ ЁЯТе

рд▓реЗрдХрд┐рди рд░реБрдХрд┐рдП, рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХрд╛ рдХреНрдпрд╛?

const YEHUDA = { first: "Yehuda", last: "Katz" };
const TOM = { first: "Tom", last: "Dale" };
const GODFREY = { first: "Godfrey", last: "Chan" };

this.list = [
  YEHUDA,
  TOM,
  GODFREY,
  TOM, // duplicate
  YEHUDA, // duplicate
  YEHUDA, // duplicate
  YEHUDA // duplicate
];

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рд╡рд╕реНрддреБ _could_ рдПрдХ рд╣реА рд╕реВрдЪреА рдореЗрдВ рдХрдИ рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рднреЛрд▓реЗ @identity рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЬрд╣рд╛рдВ рд╣рдордиреЗ рдХрд╣рд╛ "рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдвреВрдВрдвреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ ( === ) ..." - рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛ рдбреЛрдо рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИ 1 : 1, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЕрд╕рдВрднрд╡ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрди рдЯрдХрд░рд╛рд╡реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рдЗрдмреНрд░рд┐рдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, рдХреА-рдЯреВ-рдбреЛрдо рдореИрдкрд┐рдВрдЧ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

"YEHUDA" => <li>Yehuda...</li>
"TOM" => <li>Tom...</li>
"GODFREY" => <li>Godfrey...</li>
"TOM-1" => <li>Tom...</li>
"YEHUDA-1" => <li>Yehuda...</li>
"YEHUDA-2" => <li>Yehuda...</li>
"YEHUDA-3" => <li>Yehuda...</li>

рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ _is_ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рд╣реИ, рдФрд░ рдЬрдм рдпрд╣ рдКрдкрд░ рдЖрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЧреБрдб рдПрдирдлрд╝ тДв рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдХ рдореБрдЦреНрдп рдкрде (рдпрд╛ RFC 321 рдореЗрдВ рдФрд░ рднреА рдЙрдиреНрдирдд рдХреБрдВрдЬреАрдпрди рддрдВрддреНрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

"ЁЯРЫ" рдкрд░ рд╡рд╛рдкрд╕

рдЖрдЦрд┐рд░рдХрд╛рд░ рд╣рдо рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЯреНрд╡рд┐рдбрд▓ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рдЗрд╕ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА: [undefined, undefined, undefined, undefined, undefined] ред

рдЕрд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдЯ: Array(5) _not_ [undefined, undefined, undefined, undefined, undefined] ред рдпрд╣ рдПрдХ "рдЫреЗрджрджрд╛рд░ рд╕рд░рдгреА" рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЗрд╕ рдмрдЧ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "рдЫреЗрдж" рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ undefined рд╡рд╛рдкрд╕ рдорд┐рд▓рддрд╛ рд╣реИред рддреЛ рд╣рдорд╛рд░реЗ _very рд╕рдВрдХреАрд░реНрдг_ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рд╡реЗ рд╕рдорд╛рди рд╣реИрдВред

рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХреА рдереА, рдПрдореНрдмрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ @identity рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪреВрдВрдХрд┐ рд╡реЗ рдЯрдХрд░рд╛рд╡ рд╣реИрдВ, рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реБрдП:

"undefined" => <input ...> 0: ...,
"undefined-1" => <input ...> 1: ...,
"undefined-2" => <input ...> 2: ...,
"undefined-3" => <input ...> 3: ...,
"undefined-4" => <input ...> 4: ...

рдЕрдм, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рдЪреЗрдХ рдмреЙрдХреНрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ:

  1. рдпрд╣ рдЪрдпрдирд┐рдд рдмреЙрдХреНрд╕ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ: рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдЪ рдореЗрдВ рдмрджрд▓рдирд╛
  2. рдпрд╣ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ {{action}} рд╕рдВрд╢реЛрдзрдХ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ makeChange рдкрджреНрдзрддрд┐ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  3. рдпрд╣ рд╕реВрдЪреА рдХреЛ [true, undefined, undefined, undefined, undefined] ред
  4. рдпрд╣ DOM рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред

DOM рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

  1. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рдкрд╣рд▓реА рд╡рд╕реНрддреБ true ред рдЪреВрдБрдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛, рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ <input checked=true ...>0: true... рдбрд╛рд▓реЗрдВ
  2. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рджреВрд╕рд░реА рд╡рд╕реНрддреБ undefined ред рдорд┐рд▓рд╛ <input ...>0: ... (рдкрд╣рд▓реЗ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐):
    2.1ред {{idx}} рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдХреЛ 1 рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
    2.2ред рдЕрдиреНрдпрдерд╛, рдЬрд╣рд╛рдБ рддрдХ рдПрдореНрдмрд░ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
  3. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рддреАрд╕рд░реА рд╡рд╕реНрддреБ undefined ред рдЪреВрдВрдХрд┐ рдпрд╣ рджреВрд╕рд░реА рдмрд╛рд░ рд╣реИ рдЬрдм рд╣рдордиреЗ undefined , рдЖрдВрддрд░рд┐рдХ рдХреБрдВрдЬреА undefined-1 , рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ <input ...>1: ... (рдкрд╣рд▓реЗ рд╕реЗрдХрдВрдб рдХреА рдкрдВрдХреНрддрд┐) рдкрд╛рдпрд╛:
    3.1ред {{idx}} рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдХреЛ 2 рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
    3.2ред рдЕрдиреНрдпрдерд╛, рдЬрд╣рд╛рдБ рддрдХ рдПрдореНрдмрд░ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
  4. рдЗрд╕реА рддрд░рд╣, undefined-2 рдФрд░ undefined-3 рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
  5. рдЕрдВрдд рдореЗрдВ, рдмреЗрдЬреЛрдбрд╝ undefined-4 рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдХреНрдпреЛрдВрдХрд┐ рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдХрдо undefined )

рддреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЯреНрд╡рд┐рдбрд▓ рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдЖрдЙрдЯрдкреБрдЯ рдХреИрд╕реЗ рдорд┐рд▓рд╛ред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рднреА DOM рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕реЗ рдиреАрдЪреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдирдпрд╛ рдбрд╛рд▓рд╛ рдЧрдпрд╛, рдЬрдмрдХрд┐ {{idx}} рд╢реЗрд╖ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣рд┐рд╕реНрд╕рд╛ 2.2 рд╣реИред рднрд▓реЗ рд╣реА рдкрд╣рд▓реЗ рдЪреЗрдХрдмреЙрдХреНрд╕ (рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЖрдк рд╢рд╛рдпрдж рдПрдореНрдмрд░ рд╕реЗ рдЗрд╕рдХреЗ checked рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ true рдореЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИ, рдФрд░ рдЪреВрдБрдХрд┐ рдЗрд╕рдХрд╛ рдмрдВрдзрд┐рдд рдореВрд▓реНрдп рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рдЖрдк рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдореНрдмрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ false , рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рдЕрдирдЪреЗрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рддреЛ, рдЯреАрдПрд▓; рдбреАрдЖрд░, "рдмрдВрдзрди" checked рд╕рдВрдкрддреНрддрд┐ (рдпрд╛ value рдПрдХ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдХреА рд╕рдВрдкрддреНрддрд┐, рдЖрджрд┐) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЕрдЧрд░ рдЖрдк рдкреНрд░рджрд╛рди рдХреА рдЧрдИ <div>{{this.name}}</div> рдФрд░ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрджреНрдпрддрди textContent рдХреЗ div рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рддрддреНрд╡ jQuery рдпрд╛ рдХреНрд░реЛрдо рдирд┐рд░реАрдХреНрд╖рдХ рдХреЗ рд╕рд╛рдеред рдЖрдкрдиреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХреА рд╣реЛрдЧреА рдХрд┐ рдПрдореНрдмрд░ рдЖрдкрдХреЗ рд▓рд┐рдП this.name рдХрд╛ рдиреЛрдЯрд┐рд╕ рдХрд░реЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ: checked рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдореНрдмрд░ рдХреЗ рдмрд╛рд╣рд░ рд╣реБрдЖ (рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдПрдореНрдмрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ {{input}} рд╕рд╣рд╛рдпрдХ рдореМрдЬреВрдж рд╣реИред рдЗрд╕рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTML рддрддреНрд╡ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрдЪрд┐рдд рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ (рдЬреИрд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдкрд░рдд) рдХреЛ рдЕрдзрд┐рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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

@andrewtimberlake {{#each range key="@index" as |value idx|}} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдмрдЧ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, key рдПрдХ рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╣реИ, https://www.emberjs.com/api/ember/release/classes/Ember.Templates.helpers/methods/if?chchor= рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЧрдВрджрдЧреА рдХрд╛ mess рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ (рд╕реАрдорд╛ рд░реЗрдЦрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рддреНрд░реБрдЯрд┐) рдиреЗ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реИ / рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╣реИред

рдкреНрд░рдореБрдЦ ЁЯФС

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ key рдкреИрд░рд╛рдореАрдЯрд░ {{#each}} ред рдЯреАрдПрд▓; рдбреАрдЖрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореМрдЬреВрджрд╛ рдбреЛрдо рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдм рдФрд░ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛, рдмрдирд╛рдо рдЦрд░реЛрдВрдЪ рд╕реЗ рдбреЛрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ред

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

рдЪрд▓реЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрдЬрд╛рдп рд╕рд░рд▓ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

<ul>
  {{#each this.names as |name|}}
    <li>{{name.first}} {{to-upper-case name.last}}</li>
  {{/each}}
</ul>

рдпрджрд┐ this.names рд╣реИ ...

[
  { first: "Yehuda", last: "Katz" },
  { first: "Tom", last: "Dale" },
  { first: "Godfrey", last: "Chan" }
]

рддрдм рдЖрдкрдХреЛ рдорд┐рд▓реЗрдЧрд╛ ...

<ul>
  <li>Yehuda KATZ</li>
  <li>Tom DALE</li>
  <li>Godfrey CHAN</li>
</ul>

рдЕрдм рддрдХ рд╕рдм рдареАрдХ рд╣реИред

рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рд▓рд╛рдЧреВ рдХрд░рдирд╛

рдЕрдм рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рд╕реВрдЪреА рдореЗрдВ { first: "Andrew", last: "Timberlake" } рдЬреЛрдбрд╝ рджреЗрдВ? рд╣рдо рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд DOM рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ:

<ul>
  <li>Yehuda KATZ</li>
  <li>Tom DALE</li>
  <li>Godfrey CHAN</li>
  <li>Andrew TIMBERLAKE</li>
</ul>

рдкрд░ рдХреИрд╕реЗ_?

{{#each}} рд╕рд╣рд╛рдпрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рднреЛрд▓рд╛ рддрд░реАрдХрд╛ рд╣рд░ рдмрд╛рд░ рд╕реВрдЪреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рд╕реВрдЪреА рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо 23 рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

  • 3 <li> рдиреЛрдб рдирд┐рдХрд╛рд▓реЗрдВ
  • 4 <li> рдиреЛрдб рдбрд╛рд▓реЗрдВ
  • 12 рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдбреНрд╕ рдбрд╛рд▓реЗрдВ (рдкрд╣рд▓реЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ, рдмреАрдЪ рдХреЗ рд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдВрддрд┐рдо рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ, 4 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛)
  • 4 рдмрд╛рд░ to-upper-case рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ

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

Ex @index

рдПрдХ рдмреЗрд╣рддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХреЛрдИ рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ key="@index" рдХрд░рддрд╛ рд╣реИ:

  1. рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рд╡рд╕реНрддреБ { first: "Yehuda", last: "Katz" } рддреБрд▓рдирд╛ рдХрд░реЗрдВ, <li>Yehuda KATZ</li> :
    1.1ред "рдпреЗрд╣реБрджрд╛" === "рдпреЗрд╣реБрджрд╛", рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
    1.2ред (рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдбрд╛рдпрдиреЗрдорд┐рдХ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рддреБрд▓рдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)
    1.3ред "рдХрд╛рдЯреНрдЬрд╝" === "рдХрд╛рдЯреНрдЬрд╝", рдЪреВрдВрдХрд┐ рд╕рд╣рд╛рдпрдХ "рд╢реБрджреНрдз" рд╣реИрдВ, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ to-upper-case рд╕рд╣рд╛рдпрдХ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЖрд╣реНрд╡рд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрд╕ рд╕рд╣рд╛рдпрдХ ("KATZ") рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ ) _also_ рдирд╣реАрдВ рдмрджрд▓рд╛, рддреЛ рдпрд╣рд╛рдБ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ
  2. рдЗрд╕реА рддрд░рд╣, рдкрдВрдХреНрддрд┐ 2 рдФрд░ 3 рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
  3. DOM рдореЗрдВ рдХреЛрдИ рдЪреМрдереА рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбрд╛рд▓реЗрдВ
    3.1ред <li> рдиреЛрдб рдбрд╛рд▓реЗрдВ
    3.2ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("рдПрдВрдбреНрд░рдпреВ")
    3.3ред рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб (рд╕реНрдкреЗрд╕) рдбрд╛рд▓реЗрдВ
    3.4ред to-upper-case рд╕рд╣рд╛рдпрдХ ("рдЯрд┐рдореНрдмрд░рд▓реЗрдХ" -> "TIMBERLAKE") рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдВ
    3.5ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("TIMBERLAKE")

рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рддреБрд▓рдирд╛рдУрдВ рдХреА рд▓рд╛рдЧрдд рдкрд░ 23 рд╕реЗ 5 (w рд╣рд╛рде рд▓рд╣рд░рд╛рддреЗ рд╣реБрдП) рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рдорд╛рди рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдмрд╛рдХреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╕реНрддреЗ рд╣реИрдВред рдмреБрд░рд╛ рдирд╣реАрдВред

рд╕реВрдЪреА рдореЗрдВ рдХрд┐рд╕реА рдЖрдЗрдЯрдо рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛

рд▓реЗрдХрд┐рди рдЕрдм, рдЕрдЧрд░ рд╕реВрдЪреА рдореЗрдВ _appending_ { first: "Andrew", last: "Timberlake" } рдмрдЬрд╛рдп, рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ? рд╣рдо рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд DOM рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ:

<ul>
  <li>Andrew TIMBERLAKE</li>
  <li>Yehuda KATZ</li>
  <li>Tom DALE</li>
  <li>Godfrey CHAN</li>
</ul>

рдкрд░ рдХреИрд╕реЗ_?

  1. рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рд╡рд╕реНрддреБ { first: "Andrew", last: "Timberlake" } рддреБрд▓рдирд╛ рдХрд░реЗрдВ, <li>Yehuda KATZ</li> :
    1.1ред "рдПрдВрдбреНрд░рдпреВ"! == "рдпреЗрд╣реБрджрд╛", рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
    1.2ред (рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдбрд╛рдпрдиреЗрдорд┐рдХ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рддреБрд▓рдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)
    1.3ред "рдЯрд┐рдореНрдмрд░рд▓реЗрдХ"! == "рдХрд╛рдЯреНрдЬрд╝", to-upper-case рд╕рд╣рд╛рдпрдХ рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ
    1.4ред "KATZ" рд╕реЗ "TIMBERLAKE" рддрдХ рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
  2. рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ { first: "Yehuda", last: "Katz" } рдХреА рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐, <li>Tom DALE</li> , рдПрдХ рдФрд░ 3 рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВ
  3. рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реА рд╡рд╕реНрддреБ { first: "Tom", last: "Dale" } рддреБрд▓рдирд╛ рдХрд░реЗрдВ, <li>Godfrey CHAN</li> , рдПрдХ рдФрд░ 3 рдСрдкрд░реЗрд╢рди
  4. DOM рдореЗрдВ рдХреЛрдИ рдЪреМрдереА рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбрд╛рд▓реЗрдВ
    3.1ред <li> рдиреЛрдб рдбрд╛рд▓реЗрдВ
    3.2ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("рдЧреЙрдбрдлреНрд░реЗ")
    3.3ред рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб (рд╕реНрдкреЗрд╕) рдбрд╛рд▓реЗрдВ
    3.4ред to-upper-case рд╕рд╣рд╛рдпрдХ ("рдЪрд╛рди" -> "рдЪрд╛рди") рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ
    3.5ред рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб ("CHAN") рдбрд╛рд▓реЗрдВ

рд╡рд╣ 14 рдСрдкрд░реЗрд╢рди рд╣реИред рдЖрдЙрдЪ!

Ity @ рдШрдЯрдирд╛

рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдЪрд╛рд╣реЗ рд╣рдо рдкреНрд░реАрдкреЗрдб рд╣реЛ рдпрд╛ рдЕрдкреАрд▓ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рд╣рдо рдЕрднреА рднреА рд╕рд░рдгреА рдореЗрдВ рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ (рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдореЗрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд╛рде рд╣реА рд╣рдордиреЗ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рднреА рдХрд┐рдпрд╛ рд╣реИред

рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ key="@identity" рдЖрддрд╛ рд╣реИред рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЗ _order_ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЙрдирдХреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╕реНрддреБ рдкрд╣рдЪрд╛рди ( === ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

  1. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рдкрд╣рд▓реА рд╡рд╕реНрддреБ { first: "Andrew", last: "Timberlake" } ред рдЪреВрдБрдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛, рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ (рдкреВрд░реНрд╡-рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ):
    1.1ред <li> рдиреЛрдб рдбрд╛рд▓реЗрдВ
    1.2ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("рдПрдВрдбреНрд░рдпреВ")
    1.3ред рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб (рд╕реНрдкреЗрд╕) рдбрд╛рд▓реЗрдВ
    1.4ред to-upper-case рд╕рд╣рд╛рдпрдХ ("рдЯрд┐рдореНрдмрд░рд▓реЗрдХ" -> "TIMBERLAKE" рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ)
    1.5ред рдПрдХ рдкрд╛рда рдиреЛрдб рдбрд╛рд▓реЗрдВ ("TIMBERLAKE")
  2. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рджреВрд╕рд░реА рд╡рд╕реНрддреБ { first: "Yehuda", last: "Katz" } ред рдкрд╛рдпрд╛ <li>Yehuda KATZ</li> :
    2.1ред "рдпреЗрд╣реБрджрд╛" === "рдпреЗрд╣реБрджрд╛", рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
    2.2ред (рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдбрд╛рдпрдиреЗрдорд┐рдХ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рддреБрд▓рдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)
    2.3ред "рдХрд╛рдЯреНрдЬрд╝" === "рдХрд╛рдЯреНрдЬрд╝", рдХреНрдпреЛрдВрдХрд┐ рд╕рд╣рд╛рдпрдХ "рд╢реБрджреНрдз" рд╣реИрдВ, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ to-upper-case рд╕рд╣рд╛рдпрдХ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЖрд╣реНрд╡рд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрд╕ рд╕рд╣рд╛рдпрдХ ("KATZ") рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ ) _also_ рдирд╣реАрдВ рдмрджрд▓рд╛, рддреЛ рдпрд╣рд╛рдБ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ
  3. рдЗрд╕реА рддрд░рд╣, рдЯреЙрдо рдФрд░ рдЧреЙрдбрдлреНрд░реЗ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
  4. рдмреЗрдЬреЛрдбрд╝ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ (рдХреЛрдИ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ)

рдЙрд╕ рдХреЗ рд╕рд╛рде, рд╣рдо рдЗрд╖реНрдЯрддрдо 5 рдСрдкрд░реЗрд╢рди рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдП рд╣реИрдВред

рдЖрдиреБрдкрд╛рддрд┐рдХ рджрд░реЛрдВ рд╕реЗ рдмрдврд╝рд╛рдПрдБ

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

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдРрдк рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рддреБрд▓рдирд╛ рдФрд░ рдкреБрд╕реНрддрдХ-рд░рдЦрдиреЗ рдХреА рд▓рд╛рдЧрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдХреЗ рдмрд╛рдж рд╕реЗ key="@identity" рдПрдВрдмрд░ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо, рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрдЧреА key рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп {{#each}} ред

рдЯрдХрд░рд╛рд╡ ЁЯТе

рд▓реЗрдХрд┐рди рд░реБрдХрд┐рдП, рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХрд╛ рдХреНрдпрд╛?

const YEHUDA = { first: "Yehuda", last: "Katz" };
const TOM = { first: "Tom", last: "Dale" };
const GODFREY = { first: "Godfrey", last: "Chan" };

this.list = [
  YEHUDA,
  TOM,
  GODFREY,
  TOM, // duplicate
  YEHUDA, // duplicate
  YEHUDA, // duplicate
  YEHUDA // duplicate
];

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рд╡рд╕реНрддреБ _could_ рдПрдХ рд╣реА рд╕реВрдЪреА рдореЗрдВ рдХрдИ рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рднреЛрд▓реЗ @identity рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЬрд╣рд╛рдВ рд╣рдордиреЗ рдХрд╣рд╛ "рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдвреВрдВрдвреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ ( === ) ..." - рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛ рдбреЛрдо рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИ 1 : 1, рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЕрд╕рдВрднрд╡ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрди рдЯрдХрд░рд╛рд╡реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рдЗрдмреНрд░рд┐рдб рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, рдХреА-рдЯреВ-рдбреЛрдо рдореИрдкрд┐рдВрдЧ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

"YEHUDA" => <li>Yehuda...</li>
"TOM" => <li>Tom...</li>
"GODFREY" => <li>Godfrey...</li>
"TOM-1" => <li>Tom...</li>
"YEHUDA-1" => <li>Yehuda...</li>
"YEHUDA-2" => <li>Yehuda...</li>
"YEHUDA-3" => <li>Yehuda...</li>

рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ _is_ рдмрд╣реБрдд рджреБрд░реНрд▓рдн рд╣реИ, рдФрд░ рдЬрдм рдпрд╣ рдКрдкрд░ рдЖрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЧреБрдб рдПрдирдлрд╝ тДв рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдХ рдореБрдЦреНрдп рдкрде (рдпрд╛ RFC 321 рдореЗрдВ рдФрд░ рднреА рдЙрдиреНрдирдд рдХреБрдВрдЬреАрдпрди рддрдВрддреНрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

"ЁЯРЫ" рдкрд░ рд╡рд╛рдкрд╕

рдЖрдЦрд┐рд░рдХрд╛рд░ рд╣рдо рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЯреНрд╡рд┐рдбрд▓ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рдЗрд╕ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА: [undefined, undefined, undefined, undefined, undefined] ред

рдЕрд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдЯ: Array(5) _not_ [undefined, undefined, undefined, undefined, undefined] ред рдпрд╣ рдПрдХ "рдЫреЗрджрджрд╛рд░ рд╕рд░рдгреА" рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЗрд╕ рдмрдЧ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "рдЫреЗрдж" рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ undefined рд╡рд╛рдкрд╕ рдорд┐рд▓рддрд╛ рд╣реИред рддреЛ рд╣рдорд╛рд░реЗ _very рд╕рдВрдХреАрд░реНрдг_ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рд╡реЗ рд╕рдорд╛рди рд╣реИрдВред

рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХреА рдереА, рдПрдореНрдмрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ @identity рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪреВрдВрдХрд┐ рд╡реЗ рдЯрдХрд░рд╛рд╡ рд╣реИрдВ, рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реБрдП:

"undefined" => <input ...> 0: ...,
"undefined-1" => <input ...> 1: ...,
"undefined-2" => <input ...> 2: ...,
"undefined-3" => <input ...> 3: ...,
"undefined-4" => <input ...> 4: ...

рдЕрдм, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рдЪреЗрдХ рдмреЙрдХреНрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ:

  1. рдпрд╣ рдЪрдпрдирд┐рдд рдмреЙрдХреНрд╕ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ: рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдЪ рдореЗрдВ рдмрджрд▓рдирд╛
  2. рдпрд╣ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ {{action}} рд╕рдВрд╢реЛрдзрдХ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ makeChange рдкрджреНрдзрддрд┐ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  3. рдпрд╣ рд╕реВрдЪреА рдХреЛ [true, undefined, undefined, undefined, undefined] ред
  4. рдпрд╣ DOM рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред

DOM рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

  1. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рдкрд╣рд▓реА рд╡рд╕реНрддреБ true ред рдЪреВрдБрдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛, рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ <input checked=true ...>0: true... рдбрд╛рд▓реЗрдВ
  2. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рджреВрд╕рд░реА рд╡рд╕реНрддреБ undefined ред рдорд┐рд▓рд╛ <input ...>0: ... (рдкрд╣рд▓реЗ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐):
    2.1ред {{idx}} рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдХреЛ 1 рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
    2.2ред рдЕрдиреНрдпрдерд╛, рдЬрд╣рд╛рдБ рддрдХ рдПрдореНрдмрд░ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
  3. рдПрдХ рдореМрдЬреВрджрд╛ рдкрдВрдХреНрддрд┐ рдЦреЛрдЬреЗрдВ рдЬрд┐рд╕рдХрд╛ рдбреЗрдЯрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ ( === ) рддреАрд╕рд░реА рд╡рд╕реНрддреБ undefined ред рдЪреВрдВрдХрд┐ рдпрд╣ рджреВрд╕рд░реА рдмрд╛рд░ рд╣реИ рдЬрдм рд╣рдордиреЗ undefined , рдЖрдВрддрд░рд┐рдХ рдХреБрдВрдЬреА undefined-1 , рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ <input ...>1: ... (рдкрд╣рд▓реЗ рд╕реЗрдХрдВрдб рдХреА рдкрдВрдХреНрддрд┐) рдкрд╛рдпрд╛:
    3.1ред {{idx}} рдЯреЗрдХреНрд╕реНрдЯ рдиреЛрдб рдХреЛ 2 рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
    3.2ред рдЕрдиреНрдпрдерд╛, рдЬрд╣рд╛рдБ рддрдХ рдПрдореНрдмрд░ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ
  4. рдЗрд╕реА рддрд░рд╣, undefined-2 рдФрд░ undefined-3 рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
  5. рдЕрдВрдд рдореЗрдВ, рдмреЗрдЬреЛрдбрд╝ undefined-4 рдкрдВрдХреНрддрд┐ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдХреНрдпреЛрдВрдХрд┐ рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдХрдо undefined )

рддреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЯреНрд╡рд┐рдбрд▓ рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдЖрдЙрдЯрдкреБрдЯ рдХреИрд╕реЗ рдорд┐рд▓рд╛ред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рднреА DOM рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕реЗ рдиреАрдЪреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдирдпрд╛ рдбрд╛рд▓рд╛ рдЧрдпрд╛, рдЬрдмрдХрд┐ {{idx}} рд╢реЗрд╖ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣рд┐рд╕реНрд╕рд╛ 2.2 рд╣реИред рднрд▓реЗ рд╣реА рдкрд╣рд▓реЗ рдЪреЗрдХрдмреЙрдХреНрд╕ (рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗ рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЖрдк рд╢рд╛рдпрдж рдПрдореНрдмрд░ рд╕реЗ рдЗрд╕рдХреЗ checked рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ true рдореЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИ, рдФрд░ рдЪреВрдБрдХрд┐ рдЗрд╕рдХрд╛ рдмрдВрдзрд┐рдд рдореВрд▓реНрдп рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рдЖрдк рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдореНрдмрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ false , рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рдЕрдирдЪреЗрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рддреЛ, рдЯреАрдПрд▓; рдбреАрдЖрд░, "рдмрдВрдзрди" checked рд╕рдВрдкрддреНрддрд┐ (рдпрд╛ value рдПрдХ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдХреА рд╕рдВрдкрддреНрддрд┐, рдЖрджрд┐) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЕрдЧрд░ рдЖрдк рдкреНрд░рджрд╛рди рдХреА рдЧрдИ <div>{{this.name}}</div> рдФрд░ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрджреНрдпрддрди textContent рдХреЗ div рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рддрддреНрд╡ jQuery рдпрд╛ рдХреНрд░реЛрдо рдирд┐рд░реАрдХреНрд╖рдХ рдХреЗ рд╕рд╛рдеред рдЖрдкрдиреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХреА рд╣реЛрдЧреА рдХрд┐ рдПрдореНрдмрд░ рдЖрдкрдХреЗ рд▓рд┐рдП this.name рдХрд╛ рдиреЛрдЯрд┐рд╕ рдХрд░реЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ: checked рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдореНрдмрд░ рдХреЗ рдмрд╛рд╣рд░ рд╣реБрдЖ (рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдПрдореНрдмрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ {{input}} рд╕рд╣рд╛рдпрдХ рдореМрдЬреВрдж рд╣реИред рдЗрд╕рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTML рддрддреНрд╡ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрдЪрд┐рдд рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ (рдЬреИрд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдкрд░рдд) рдХреЛ рдЕрдзрд┐рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

@chancancode - рдЕрджреНрднреБрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ <input ... > рдЙрдкрдпреЛрдЧ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ {{input ...}} рдЬреИрд╕реЗ рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП?

@ рдмреЛрд░рд┐рд╕-рдкреЗрддреНрд░реЛрд╡ рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд╕реАрдорд┐рдд рдорд╛рдорд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ .. рдЬреИрд╕реЗ "рдЗрд╕ рдХреНрд▓рд┐рдк рдХреЛ рдЕрдкрдиреЗ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░рдирд╛" рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдардиреАрдп рдЯреЗрдХреНрд╕реНрдЯрдлреАрд▓реНрдб рдХреА рддрд░рд╣, рдпрд╛ рдЖрдк _can_ рдЗрдирдкреБрдЯ рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ + {{action}} DOM рдЗрд╡реЗрдВрдЯ рдФрд░ рдкреНрд░реЙрдкрд░реНрдЯреА рдЕрдкрдбреЗрдЯреНрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗрдВ (рдЬреЛ рдХрд┐ рдЯреНрд╡реЗрд▓реНрдб рдиреЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ @identity рдЯрдХреНрдХрд░ рдореЗрдВ рднреА рдЪрд▓реЗ), рд▓реЗрдХрд┐рди рд╣рд╛рдБ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдЖрдк {{input}} рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд▓реЗ рдЧрдП рд╕рднреА рдХрд┐рдирд╛рд░реЗ-рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ред рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ _probably_ рдЙрдЪрд┐рдд рд╣реИ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ {{input}} рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рд╕рднреА рд╕рдордп рдХрд╛ рдирд╣реАрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЕрднреА рднреА рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ "рдирд┐рд╢реНрдЪрд┐рдд" рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рд╣реИрдВред Https://ember-twiddle.com/0f2369021128e2ae0c445155df5bb034?openFiles=templates.application.hbs%2C рджреЗрдЦреЗрдВ

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдореБрдЭреЗ 100% рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рдПрдХ рддрд░рдл рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ, рджреВрд╕рд░реА рддрд░рдл, рдЗрд╕ рддрд░рд╣ рдХреА рдЯрдХреНрдХрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдРрдкреНрд╕ рдореЗрдВ рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИ рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ "рдХреБрдВрдЬреА" рддрд░реНрдХ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИ (рдпрд╣ рдПрдХ рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ "@ рдШрдЯрдирд╛" рдХреБрдВрдЬреА рд╣реИ рдлрд╝рдВрдХреНрд╢рди рдЧреБрдб рдПрдирдлрд╝ тДв рдирд╣реАрдВ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдореМрдЬреВрдж рд╣реИ)ред

@chancancode - рдпрд╣ рдореБрдЭреЗ рдПрдХ рдФрд░ рдореБрджреНрджреЗ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдЦреЛрд▓рд╛ рдерд╛ ред рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╣реИ? рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдЬреЛ рдЙрддреНрддрд░ рдорд┐рд▓рд╛ (рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп set рдмрдЬрд╛рдп replace рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ) рдЕрднреА рднреА рдореБрдЭреЗ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред

@ рдмреЛрд░рд┐рд╕-рдкреЗрдЯреНрд░реЛрд╡ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ

рдирдорд╕реНрддреЗ, рд╣рдо рдЕрдВрдЧрд╛рд░реЗ рдХреЗ рд╕рд╛рде рдбреНрд░реИрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╕реЙрд░реНрдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред pls рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдбреЗрдореЛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдХрджрдо:

  • рдХрд┐рд╕реА рднреА рдПрдХ рдЖрдЗрдЯрдо рдХреЛ рд▓рд╛рд╕реНрдЯ рддрдХ рдЦреАрдВрдЪреЗрдВ
  • 'v2' рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ

рдЖрдк рдбреЛрдо рдЯреНрд░реА рдореЗрдВ рдШрд╕реАрдЯреЗ рдЧрдП рдЖрдЗрдЯрдо рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди, рдЕрдЧрд░ рдЖрдЗрдЯрдо рдХреЛ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЦреАрдВрдЪреЗрдВ (рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рдирд╣реАрдВ), рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

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

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

mar20 picture mar20  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

acorncom picture acorncom  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dfreeman picture dfreeman  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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