Ember.js: [Pls рднреЗрдЬреЗрдВ рдкрдбрд╝рд╛рд╡!] рдЕрдВрддрд┐рдо рдЭрд▓рдХ 2 рдЯреЗрд╕реНрдЯ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдЧрд╛рдЗрдб

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдорд╛рд░реНрдЪ 2016  ┬╖  44рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: emberjs/ember.js

: рд░реАрд╕рд╛рдпрдХрд▓:: рд░реАрд╕рд╛рдпрдХрд▓:: рд░реАрд╕рд╛рдпрдХрд▓: рдХреГрдкрдпрд╛ рдЗрд╕ рдЧреАрдереВрдм рдореБрджреНрджреЗ рдХреЛ рдЫрд╛рдкрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред : рд░реАрд╕рд╛рдпрдХрд▓:: рд░реАрд╕рд╛рдпрдХрд▓:: рд░реАрд╕рд╛рдпрдХрд▓:

рдмреИрдХрд╕реНрдЯреЛрд░реА

@ рд╡рд╛рдпрдЯреНрд╕ рдФрд░ рдореИрдВ (рдФрд░ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдорджрдж рдХреА рд╣реИ) рдкрд┐рдЫрд▓реЗ рдЫрд╣ рдорд╣реАрдиреЛрдВ рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдЗрдВрдЬрди рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "рдЧреНрд▓рд┐рдорд░ 2" рд╣реИред

рдпрд╣ htmlbars рдХреЗ рдПрдХ рдХрд╛рдВрдЯреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реБрдЖ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдХреЛрдб рдХреА рд▓рдЧрднрдЧ рд╣рд░ рдкрдВрдХреНрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ (рдХрднреА-рдХрднреА рдХрдИ рдмрд╛рд░)ред рд╣рдордиреЗ рдкрд┐рдЫрд▓реА рдкреАрдврд╝реА рдХреЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди (рд╣реИрдВрдбрд▓рдмрд╛рд░, рдПрдЪрдЯреАрдПрдордмреАрдЖрд░, рдореВрд▓ рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ

рдЖрдк https://github.com/tildeio/glimmer рдкрд░ рдХреЛрдбреЗрдЬрд╝ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ (рдкреБрдирдГ) рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА, EmberConf рдкрд░ рдЕрдзрд┐рдХред

рдПрдХрддрд╛

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

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рдирдП рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдРрдкреНрд╕ рдореЗрдВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдЬрд▓реНрдж рд╣реА рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЙрдореНрдореАрдж рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдордиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ HTMLBars рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдореВрд▓ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреА рддрд░рд╣ рд╣реА рдПрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рджрд░реНрдж рд░рд╣рд┐рдд, рдбреНрд░реЙрдк-рдЕрдк рдЕрдкрдЧреНрд░реЗрдб рд╣реЛрдЧрд╛ред

(рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдлреАрдЪрд░ рдлреНрд▓реИрдЧ рдХреЛ рдЯреЙрдЧрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╕рдВрднрд╡рддрдГ _before_ рдХреЛ рд▓реИрдВрдб рдХрд░ рджреЗрдЧреА, рд╕рднреА рдореМрдЬреВрджрд╛ рдлреАрдЪрд░реНрд╕ рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЧреЗрдЯ-рдЧреЛ рд╕реЗ рдЖрдкрдХреЗ рдРрдк рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рд░реВрдк рд╕реЗ _not_ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред)

Pls рд░реБрдХрд╛рд╡рдЯ рднреЗрдЬреЗрдВ

рддреЛ, рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, "рдореИрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?"

рдореИрдВ рдЦреБрд╢ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рдкреВрдЫрд╛! : рдмреВрдо:: рдЪрдордХ:: рдЖрддрд┐рд╢рдмрд╛рдЬреА:: рдЯрд╛рдбрд╛:

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪрддрдо рдореВрд▓реНрдп рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ (рдФрд░ рдЗрди рдкреАрдЖрд░ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ)ред рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдПрдореНрдмрд░ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рд╣реИ рдЬреЛ "рджреГрд╢реНрдп рдкрд░рдд" рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдЙрди рддрд░реАрдХреЛрдВ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдЬреЛ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдпреБрдЧреНрдорд┐рдд рд╣реИрдВ рдпрд╛ рдЕрдиреНрдпрдерд╛ рд╡рд┐рд░рд╛рд╕рдд рд╢рдмреНрджрд╛рд░реНрде (рдЬреИрд╕реЗ {{view.foo}} ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдордиреЗ рдХреЛрдИ рдкреНрд░рддрд┐рдЧрдорди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд╣рдо рд╡рд░реНрддрдорд╛рди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди ("htmlbars") рдФрд░ рдЧреНрд▓рд┐рдорд░ 2 рджреЛрдиреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрдкрдирд╛ рд╕рдВрдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рд╣рдордиреЗ рдПрдХ рдирдпрд╛ рдкрд░реАрдХреНрд╖рдг рд╣рд╛рд░реНрдиреЗрд╕ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рдПрдХ рдЕрдореВрд░реНрдд рдкрд░рдд рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рд┐рдЦрд╛ рд╣реИ, рдЬреЛ рджреЛрдиреЛрдВ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░реЛрдВ рдХреЛ рдХреВрдЯрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдХреЛрдб рдХреЛ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

matrix

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

рд╣рд╛рд░реНрдиреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрдВрддреНрд░ рдмрд╣реБрдд рдХрдо рддрдХрдиреАрдХ рд╡рд╛рд▓рд╛ рд╣реИред рдЖрдкрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕реЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

ember-glimmer рдкреИрдХреЗрдЬ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░, рдЖрдкрдХреЛ abstract-test-case.js рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓реЗрдЧреА, рдЬреЛ ember-htmlbars рдкреИрдХреЗрдЬ рдХреЗ рдЕрдВрджрд░ рднреА рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рд╕рд┐рдорд┐рд▓реЗрдЯреЗрдб рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рджреЛрдиреЛрдВ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ (рд╕рд┐рдорд┐рд▓рд┐рдВрдХ) рд╣реИ, рдЗрд╕рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ (рдЬреИрд╕реЗ import ... from './helpers' ) рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рд╕рднреА рдЕрдВрддрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ test-case.js рдореЗрдВ "рдЕрдореВрд░реНрдд" рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рднреА рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ ( ember-glimmer ember-htmlbars рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВ)ред

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

рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ

рдЪреВрдВрдХрд┐ рдЗрдВрдЬрди рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдбреНрд░реЙрдк-рдЗрди рдЕрдкрдЧреНрд░реЗрдб рд╣реЛрдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рджреЛрдиреЛрдВ рдЗрдВрдЬрдиред

рдпрд╣ рд╣рдорд╛рд░рд╛ рдЕрдм рддрдХ рдХрд╛ рдлреЛрдХрд╕ рд░рд╣рд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдкрд░реАрдХреНрд╖рдг рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ ember-glimmer рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ ember-htmlbars рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рд┐рдореНрдкреНрд▓рд╛рдЗрдб рд╣реИ)ред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдкреИрдХреЗрдЬ-рд╡рд┐рд╢рд┐рд╖реНрдЯ test-case.js рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд╣реИред

рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░ рдкрд░, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  1. рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдЪреБрдиреЗрдВ (рдЖрдорддреМрд░ рдкрд░ рдпрд╣ ember-htmlbars рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдПрдХ рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рд╣реИ)
  2. ember-glimmer/tests/integration/... рдХрд╣реАрдВ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
  3. рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ / рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ, рдЬрдмрдХрд┐ ...

    • рдирдП moduleFor рдФрд░ ES6 рд╡рд░реНрдЧ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

    • рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг "INUR" рдЪрдХреНрд░ ("рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЗрдВрдбрд░ -> рдиреЛ-рдСрдк рд░реЗрдВрдбрд░рд░ -> рдЕрдкрдбреЗрдЯ (рдПрд╕) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореНрдпреВрдЯреЗрд╢рди (рдПрд╕) -> рд░рд┐рд╕реЗрдЯрд┐рдВрдЧ рдереНрд░реВ рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ" рдЪрдХреНрд░) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛, рдиреАрдЪреЗ рдЗрд╕ рдкрд░ рдФрд░ рдЕрдзрд┐рдХ)

    • рд╣рдЯрд╛рдП рдЧрдП (рдЕрдирджреЗрдЦреЗ) рдкрд░реАрдХреНрд╖рдг (рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЕрдкрдбреЗрдЯ рдЪрдХреНрд░ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ) рдХреЛ рд╣рдЯрд╛рдирд╛ (рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛)

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

рдЕрдЪреНрдЫреЗ рдЯреЗрд╕реНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ

рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдпреБрдХреНрддрд┐рдпрд╛рдВ / рдирд┐рдпрдо рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

"INUR" рдЪрдХреНрд░

рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг "INUR" рдЪрдХреНрд░ рд╕реЗ рдЧреБрдЬрд░реЗ:

  1. рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЗрдВрдбрд░

рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпреЛрдВ ( this.render(..., { ... }) ) рдХреЗ рд╕рд╛рде рдЖрдк рдЬрд┐рд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдЬреЛрд░ рджреЗрдВ, рдЬрд┐рд╕рдХреА рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред ( рдЙрджрд╛рд╣рд░рдг )

  1. рдиреЛ-рдСрдк рд░реА-рд░реЗрдВрдбрд░

рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ this.runTask(() => this.rerender()); рдХреЙрд▓ рдХрд░реЗрдВ, рдлрд┐рд░ рджрд╛рд╡рд╛ рдХрд░реЗрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рд╣реИред ( рдЙрджрд╛рд╣рд░рдг )

  1. рдореНрдпреВрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред ( рдЙрджрд╛рд╣рд░рдг )

рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

  • рдЕрдЧрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд╡рд┐рдЦрдВрдбреВ (рдпрд╛рдиреА рдХрдИ this.runTask + рдЬреЛрд░) рдореЗрдВ рдЕрджреНрдпрддрди рддреЛрдбрд╝ред рдЗрд╕рд╕реЗ "рдХреНрд▓реЛрдмрд░рд┐рдВрдЧ" рдмрдЧ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдорд╛рдиреЛрдВ рдХреЗ _some_ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдПрдХ рдФрд░ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣рд┐рд╕реНрд╕рд╛ "рдЙрдбрд╝ рдЬрд╛рдПрдЧрд╛" рдпрд╛ рдЕрдиреНрдп рдЕрд╡рд╛рдВрдЫрдиреАрдп рдкреНрд░рднрд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
  • "рдЖрдВрддрд░рд┐рдХ рдореНрдпреВрдЯреЗрд╢рди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЬрдм рдореВрд▓реНрдп рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдЕрдиреНрдп рдЖрджрд┐рдо рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рдПрд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдСрдмреНрдЬреЗрдХреНрдЯ / рдПрд░реЗ рдХреЛ рд░рдЦрддреЗ рд╣реБрдП рдСрдмреНрдЬреЗрдХреНрдЯ / рд╕рд░рдгреА рдХреЗ "рдЕрдВрджрд░" рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИред рд╡рд╣реАред ( рдРрд░реЗ рдЙрджрд╛рд╣рд░рдг , рд╡рд╕реНрддреБ рдЙрджрд╛рд╣рд░рдг )
  • "рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди" рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкреЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЬрдм рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддрд░реАрдХреЗ рд╣реЛрдВ (рдЬреИрд╕реЗ pushObject рдмрдирд╛рдо рдПрдХ рдЖрдЗрдЯрдо рдХреЛ рд╣рдЯрд╛рдирд╛, рдЖрджрд┐), рддреЛ рдЖрдорддреМрд░ рдкрд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред ( рдЙрджрд╛рд╣рд░рдг )

    1. рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ

рд╕рднреА рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдмрджрд▓рдХрд░ рдореВрд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред

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

рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдмрдЪреЗрдВ

рдПрдХ рд╣реА рдорд╛рдорд▓реЗ рдХреА рдереЛрдбрд╝реА рднрд┐рдиреНрди рднрд┐рдиреНрдирддрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрд╛рд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреА рдирдХрд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ (рдЬреИрд╕реЗ {{#if foo}} рд╕рдЪ рдмрдирд╛рдо рдЭреВрда рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдпрд╛ "POJO" рдмрдирд╛рдо Ember.Object рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ ), рдФрд░ рд╣рдордиреЗ рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИред

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

рдЖрдорддреМрд░ рдкрд░, рдирдХрд▓ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ ( {{#if foo}} true рдФрд░ false ) рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдмрд╕ рдПрдХ рд╣реА рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рджреЛрдиреЛрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

["<strong i="5">@test</strong> if"]() {
  this.render(`{{#if cond1}}T{{else}}F{{/if}}{{#if cond2}}T{{else}}F{{/if}}`, { cond1: true, cond2: false });`

  ... // follow the usual I-N-U-R cycle
}

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

рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╢рд╛рдпрдж рд╕рд╢рд░реНрдд рдкрд░реАрдХреНрд╖рдг ( if , unless , рдЖрджрд┐) рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдмрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдирд╡реЛрдХреЗрд╢рди рд╢реИрд▓реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ TogglingSyntaxConditionalsTest ( shared-conditional-tests.js рдореЗрдВ рд╕реНрдерд┐рдд) рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдФрд░ рдХрдИ рд╕рд╛рдЭрд╛ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред

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

рдмрдВрдЯрд╡рд╛рд░реЗ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреБрдЫ рд╣рдж рддрдХ рдореБрд╢реНрдХрд┐рд▓ рдереА, рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛ рдФрд░ рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛрдиреЗ / рд╕рд╣реА рд╣реЛрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛, рд▓реЗрдХрд┐рди рдЕрджрд╛рдпрдЧреА рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ (рдореВрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдЕрдм {{#with}} рдФрд░ {{#each}} рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ) рднреА)ред

рд▓рд┐рдЧреЗрд╕реА рд╢рдмреНрджрд╛рд░реНрде

рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рджреГрд╢реНрдп, {{view.foo}} , {{#view}} , context , рдирд┐рдпрдВрддреНрд░рдХреЛрдВ, рдЖрджрд┐ рдЬреИрд╕реЗ рд▓реАрдЧреЗрд╕реА рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп, рдпрд╣ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдЖрдХрд╕реНрдорд┐рдХ рд╣реИ, рдФрд░ рдмрд╕ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдРрд╕реЗ рд╕рдордп рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рддрд░реАрдХрд╛ рдерд╛ред рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рдЖрдорддреМрд░ рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдЙрдиреНрд╣реЗрдВ рдирдП рджреЛрд╣рди (рдЬреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬрдм рд╕рдВрджреЗрд╣ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдкреАрдЖрд░ рдХреЗ рдкрд╣рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рднреА рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЕрдирдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдПрдХ рд▓рд╛рдЗрди рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред

attrs рдпрд╛ attrs

рд╣рдордиреЗ рдЙрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ {{attrs.foo}} рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ рдЬреЛ рдШреБрдВрдШрд░рд╛рд▓реЗ рдШрдЯрдХреЛрдВ (рдЬреЛ рд▓рдЧрднрдЧ рд╕рднреА рдХреЗ рд╣реИрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдЙрд╕реА рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдЯрд╛рд░реНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХрд╛ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рд╕рд┐рд░реНрдл {{foo}} )ред рдЬрдм рддрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ _about_ рдкрд░реАрдХреНрд╖рдг attrs.* (рдЬреЛ рдХрд┐ рд╕рдВрднрд╡рддрдГ рд╕рднреА рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП), рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ {{foo}} рдмрдЬрд╛рдп {{attrs.foo}} рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдХреА рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдорд╣рд╕реВрд╕ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ innerFoo outerFoo рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

Https://locks.svbtle.com/to-attrs-or-not-to-attrs @locks рджреНрд╡рд╛рд░рд╛ рднреА рджреЗрдЦреЗрдВред

рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ

рдХрднреА-рдХрднреА рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪреЗ рдЧрдП рдкрд░реАрдХреНрд╖рдг рд╢рд╛рдпрдж рдЧреНрд▓рд┐рдорд░ 2 рдпрд╛ HTMLBars рдкрд░ рднреА рдХрд╛рдо рди рдХрд░реЗрдВред (рдпрджрд┐ рдпрд╣ рдпрд╛ рддреЛ рдЗрдВрдЬрди рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛ рд╣реИред)

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдЧреНрд▓рд┐рдорд░ 2 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрднреА рддрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдмреБрдирд┐рдпрд╛рджреА рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ attributeBindings рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред)

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЛ рдирдИ рд╢реИрд▓реА рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЕрднреА рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕реБрд╡рд┐рдзрд╛ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рд╣рдо рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХреЗрдВред рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЧреНрд▓рд┐рдорд░ 2 рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреЗрд╡рд▓ @test рдЙрдкрд╕рд░реНрдЧ рдХреЛ рд╡рд┐рдзрд┐ рдирд╛рдо рдореЗрдВ @htmlbars (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ "рдЗрд╕реЗ HTMLBars- рдХреЗрд╡рд▓ рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ") рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рддреБрдо рднреА рдЕрдкрдиреЗ рд▓рдЧрд╛рдХрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкреВрд░реЗ рдореЙрдбреНрдпреВрд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ moduleFor рдХреЗ рд╕рд╛рде рдирд╛рдо @htmlbars ред

рдХреБрдЫ рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдЧреНрд▓рд┐рдорд░ 2 рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдПрдЪрдЯреАрдПрдордПрд▓рдмрд╛рд░реНрд╕ рдкрд░ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╢рдмреНрджрд╛рд░реНрде рд╕рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ HTMLBars рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИред (рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдо рдХреБрдЫ HTMLBars рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирдИ "рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╢реИрд▓реА" рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдорд╛рди рдХреБрдЫ рдирдП рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред)

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

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

рдпрд╣рд╛рдБ рдХреБрдЫ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдиреЗ рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА рд╣реИ:

  • # 12920 рдЗрдирд▓рд╛рдЗрди {{if}} рд╕рд╣рд╛рдпрдХ
  • # 12927 {{#with}}
  • # 13019 рдЗрдирд▓рд╛рдЗрди {{unless}}
  • # 13093 (hash) рд╕рд╣рд╛рдпрдХ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рдереЗ (рд╣рдо рдЕрднреА рднреА рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреА рдХрд╣рд╛рдиреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд░рд╣реЗ рдереЗ), рд▓реЗрдХрд┐рди рдмрд╛рдж рдХреЗ рдкреНрд░рдпрд╛рд╕ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕реАрдзреЗ рдЖрдЧреЗ рдереЗред рдорд╛рд░реНрдЧ рдкреНрд░рд╢рд╕реНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @GavinJoyce рдФрд░ @chadhietala рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рддреЛ рдореИрдВ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВ?

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

  • [x] рдмреЗрд╕рд┐рдХ рдХрдВрдЯреЗрдВрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ # 13141 @chancancode рджреНрд╡рд╛рд░рд╛

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдФрд░ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛, рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ (рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА https://github.com/emberjs/ember.js/blob/master/packages/ember-glimmer/tests/integration/content-stest.js рдкрд░ рдХреБрдЫ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ) ред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ "рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк DOM рдореЗрдВ рдПрдХ рдЕрдЬреАрдм рдЪреАрдЬ рдбрд╛рд▓рддреЗ рд╣реИрдВ", рдЬреИрд╕реЗ {{foo}} , рдЬрд╣рд╛рдВ foo undefined , null , рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ, рдЖрджрд┐ рдпрд╣ "рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реНрдЯрд╛рдЗрд▓" рдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рд▓рдХреНрд╖реНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╣рд╛рд░реНрдиреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╢рд░реНрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реЗ https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/hooks/text_node_test.js рднреА рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

  • [x] [ attr_nodes рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/tree/master/packages/ember-htmlbars/tests/attr_nodes) (: рд▓реЙрдХ: achancancode рдФрд░ @ wycats)

рд╣рдо рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрдирд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд▓реЙрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

  • [] [ compat рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/tree/master/packages/ember-htmlbars/tests/compat): рдХреИрдВрдЪреА:

рд╣рдордиреЗ рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐ рд╣рдо 2.6 рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдЬреБрдбрд╝рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЧреНрд▓рд┐рдорд░ 2 рдореЗрдВ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдХреГрдкрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдорд╛рд╕реНрдЯрд░ рдкрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдЦреЛрд▓реЗрдВред (рдпрд╣ рд╢рд╛рдпрдж рдХреЛрдбрдмреЗрд╕ рдХреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЧрд╣рд░реЗ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред)

  • [x] [ glimmer-component рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/tree/master/packages/ember-htmlbars/tests/glimmer-component): рдХреИрдВрдЪреА: @ 13139 by @ рд▓реЛрд░рдХрди

рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░ рдЕрдкреНрд░рдпреБрдХреНрдд рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ PR рднреЗрдЬреЗрдВред

  • рд╕рд╣рд╛рдпрдХреЛрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ tests/integration/helpers рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)

    • [] [ -html-safe ] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/-html-safe-test.js): рд▓реЙрдХ :

I'm not sure if this is needed for Glimmer 2. Locking for now.

  • [x] [ closure component ] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/closure_component_test.js) (: рддрд╛рд▓рд╛: рджреНрд╡рд╛рд░рд╛ @ рд╕реЗрд░рд╛рдмреЗ)
I am pretty sure this will have to be `@htmlbars` for now.

  • [x] [ collection рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/collection_test .js ): рдХреИрдВрдЪреА:
This is legacy. Please open a PR to remove the test and any code you could find that implements the feature.

  • [x] [ #component рд╕рд╣рд╛рдпрдХ] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/component_test.js) # 13140 @GavinJoyce рджреНрд╡рд╛рд░рд╛
Basic support for the feature has landed in #13057 and we already wrote some basic tests. Please port the rest of the tests into the new file (keep an eye for things that are already tested in the new file). I expect most of them to pass except position params which is not yet implemented in Glimmer 2 (you can make them `@htmlbars` for now).

  • [x] [рдХрд╕реНрдЯрдо рд╕рд╣рд╛рдпрдХ рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/custom_helper_test.js # 13138 @zackthehuman рджреНрд╡рд╛рд░рд╛
Basic support for the feature has landed in #12910/#13087 and we already wrote some basic tests. Please port the rest of the tests into the new file (keep an eye for things that are already tested in the new file). I expect most of them to pass with the exception of the lifecycle stuff (destroy, etc) for class-based helpers (you can make them `@htmlbars` for now).

  • [x] [ debug рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/debug_test .js ): рдХреИрдВрдЪреА: @ code0100fun рджреНрд╡рд╛рд░рд╛
This is a duplicate of `log` as far as I can tell. See notes on `log` tests below.

  • [x] [ #each-in рдЯреЗрд╕реНрдЯ] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/each_in_test .js) # 13136 @mmun рджреНрд╡рд╛рд░рд╛
This should be ported to `test/intergration/syntax/...`. (In general, what was previously known as "block helpers" are now implemented as "syntax" in Glimmer 2.) 

This helper is not implemented in Glimmer 2 and will be pretty difficult for a new contributor to implement it. However, it is still important to port the tests asap (and make the module `@htmlbars`).

For bonus points, you might want to think about how to share the basic tests with the rest of the conditional matrix (i.e. testing when we need to go into the "default" branch and when we need to go into the "inverse"/`{{else}}` branch). See #13048 for some inspiration.

  • [x] [ #each рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/each_test.js) ЁЯФТ @Joelkang рджреНрд╡рд╛рд░рд╛
This should be ported to `test/intergration/syntax/...`. (In general, what was previously known as "block helpers" are now implemented as "syntax" in Glimmer 2.) 

Basic support for the feature has landed in #13048 and we already wrote some basic tests. Please port the rest of the tests into the new file (keep an eye for things that are already tested in the new file). I expect most of them to pass with the exception of the lifecycle stuff (destroy, etc) for class-based helpers (you can make them `@htmlbars` for now).

For bonus points, you might want to think about how to share the basic tests with the rest of the conditional matrix (i.e. testing when we need to go into the "default" branch and when we need to go into the "inverse"/`{{else}}` branch). I _think_ we already did that part in #13048, but if you see other ways to improve it or do more sharing please feel free to suggest them.

  • [x] [ get рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/get_test.js) # 13173, # 13,264 рджреНрд╡рд╛рд░рд╛ @ ro0gr
This helper is not implemented in Glimmer 2 and will be pretty difficult for a new contributor to implement it. However, it is still important to port the tests asap (and make the module `@htmlbars`). 

(Actually, it's not _that_ hard тАУ the implementation will likely not take more than 10-20 lines, but you would need to be quite familiar with how Glimmer 2 works to do it. Once #13103 is completed it might give you some ideas.)

  • [x] [рдЕрдЧрд░ / рдЬрдм рддрдХ рдкрд░реАрдХреНрд╖рдг рди рд╣реЛ] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/if_unless_test.js)
I believe this is already ported by @GavinJoyce. The rest are probably just legacy stuff that we can remove. <strong i="23">@GavinJoyce</strong> can you confirm?

  • [] [ {{input}} рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/input_test.js: (рд▓реЙрдХ: рдмрд╛рдп @) рдЧреИрд╡рд┐рдирдЬреЙрдпрд╕)
This helper is a not implemented in Glimmer 2 and will be pretty difficult for a new contributor to implement it. However, it is still important to port the tests asap (and make the module `@htmlbars`). 

(More precisely, the helper uses component features that are not yet implemented, such as attribute bindings. Once they are implemented the tests will probably Just PassтДв.)

  • [x] [ loc рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/loc_test .js ) # 13129 @ code0100fun рджреНрд╡рд╛рд░рд╛
The helper is not implemented in Glimmer 2, but should be trivial if you want to do it. (See #12910 or #13093) Otherwise you can always mark the module as `@htmlbars`.

  • [x] [ log рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/log_test.js) # 13131 @green рджреНрд╡рд╛рд░рд╛ -рддреАрд░
The helper is not implemented in Glimmer 2, but should be trivial if you want to do it. (See #12910 or #13093) Otherwise you can always mark the module as `@htmlbars`. As mentioned above, I think `debug_test.js` is just a duplicate of this, please verify and delete that file. **As an exception**, we only want to test initial render here, not the usual "I-N-U-R" cycle.

  • [x] [ partial рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/partial_test .js ) # 13306 @jheth рдФрд░ @chadietala рджреНрд╡рд╛рд░рд╛
This functionality is not implemented in Glimmer 2 and will be pretty difficult for a new contributor to implement it. However, it is still important to port the tests asap (and make the module `@htmlbars`). Please consider adding some abstractions like `this.registerPartial`.

This helper is a not implemented in Glimmer 2 and will be pretty difficult for a new contributor to implement it. However, it is still important to port the tests asap (and make the module `@htmlbars`). 

(More precisely, the helper uses component features that are not yet implemented, such as attribute bindings. Once they are implemented the tests will probably Just PassтДв.)

  • [x] [ unbound рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/unbound_test .js) # 13137 @chadhietala рджреНрд╡рд╛рд░рд╛
This helper is not implemented in Glimmer 2 and will be pretty difficult for a new contributor to implement it. However, it is still important to port the tests asap (and make the module `@htmlbars`). 

(Actually, it's not _that_ hard тАУ the implementation will likely not take more than 10-20 lines, but you would need to be quite familiar with how Glimmer 2 works to do it. Once #13103 is completed it might give you some ideas.)

  • [x] [ view рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/view_test.js: (рддрд╛рд▓рд╛: рджреНрд╡рд╛рд░рд╛) @ рдЪрдбреНрдвреАрддрд╛рд▓)
We announced we will end support for the legacy addons by 2.6, so we won't need to support these features in Glimmer 2. Please carefully review these tests and see if there are anything that doesn't look like deprecated/legacy functionality. Otherwise, please open PRs to remove the tests and the features on master. (This would probably require relatively deep knowledge of the codebase.)

  • [x] [ with рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/with_test .js)
I believe this is already ported by @chadhietala. The rest are probably just legacy stuff that we can remove. <strong i="5">@chadhietala</strong> can you confirm?

  • [x] [ yield рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/yield_test .js) (: рд▓реЙрдХ: рдмрд╛рдп @kiwiupover)
The feature should work in Glimmer 2 (as <strong i="12">@chadhietala</strong> pointed out in https://github.com/emberjs/ember.js/pull/13093#discussion_r55926094). Please port the rest of the tests into a new file. I expect most of them to pass. There are a lot of legacy stuff in there, so please try to understand the spirit of the test and see if they are still needed (vs they are testing a legitimate thing but just happen to use legacy semantics to test them, in which case, you should port them using non-legacy semantics).

  • "рдПрдХреАрдХрд░рдг" рдкрд░реАрдХреНрд╖рдг

    • [x] ["рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/attribute_bindings_test.js) ЁЯФТ @chadhietala # 13481

The actual `attributeBindings` feature on components is not yet implemented, but this file doesn't seem to be testing that at all. In fact, I cannot tell what this file is testing at all. Please do investigate! (I suspect this is something we already tested, perhaps <strong i="24">@GavinJoyce</strong> or <strong i="25">@chadhietala</strong> will know.)

  • [x] ["attrs_lookup" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/attrs_lookup-test.js) # 13203 @Joelkang рджреНрд╡рд╛рд░рд╛
This is probably the one place where it makes sense to test `{{attrs.foo}}` vs `{{foo}}`. I expect them to already work in Glimmer 2. However, components lifecycle hooks (e.g. `didReceiveAttrs`) is not yet implemented, so you would have to either port the test without using them, or tests that needs them as `@htmlbars` for now.

  • [x] ["рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/binding_integration_best.js) # 13210 @Joelkang рджреНрд╡рд╛рд░рд╛
Some of these tests belongs in other files (e.g. helper without parameters should be tested inside helper tests, undefined property probably belongs in the "Basic content rendering tests". The `Binding` and computed property tests are fine here, and they should Just WorkтДв on Glimmer to with some modernizing. (We might want to be want to be a little bit more through with CPs if this turns out to be the only place that tests them тАУ like updating a dependent key updates the output, etc.) The view stuff seems largely incidental, you should be able to rewrite them without the legacy semantics, but there does seem to be one or two tests that are just testing legacy semantics (based on a quick scan). Please do investigate!

  • [x] [ "рдмреНрд▓реЙрдХ рдкреИрд░рд╛рдореАрдЯрд░" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/block_params_test.js) # 13,189 @Joelkang рджреНрд╡рд╛рд░рд╛
I _think_ we should be able to find a better home the stuff tested in here (like in the helpers and components files), but even just straight porting them would be helpful.

  • [x] [ elementId рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/component_eleg_id_test.js) # 13208 рдкрд░ @jheth
This should be tested in https://github.com/emberjs/ember.js/blob/master/packages/ember-glimmer/tests/integration/components/curly-components-test.js and I think it should just work in Glimmer 2. It probably doesn't make sense to test updating for this test тАУ I don't think we support updating the `elementId`, but please do investigate!

(If we start adding more tests for components, it probably makes sense to start splitting them up into different modules/files.)

  • [x] [рдШрдЯрдХ рдЖрд╣реНрд╡рд╛рди рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/component_invocation_test.js) # 12890 @Serabe рджреНрд╡рд╛рд░рд╛
This is the monster file that tests all things components. It should probably be tested in https://github.com/emberjs/ember.js/blob/master/packages/ember-glimmer/tests/integration/components/curly-components-test.js, but as I said above, we probably want to start breaking things up. Some of the features are not implemented Glimmer 2 yet, so feel free to use `@htmlbars` liberally.

  • [x] [рдШрдЯрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/component_lifecycle_test.js) (: рддрд╛рд▓рд╛: @chancancode рдФрд░ рджреНрд╡рд╛рд░рд╛ @ wycats)
Most of these functionality are not yet implemented in Glimmer 2, so you might have to `@htmlbars` the entire module.

  • [x] [ "рднрд╛рдЧрдиреЗ" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/escape_integration_test.js) # 13143 @ code0100fun + # 13259 рд╕реЗ
I _think_ we should be able to find a better home the stuff tested in here (like in the content tests file), but even just straight porting them would be helpful.

  • [x] ["рд╕рд╣рд╛рдпрдХ рдЦреЛрдЬ" рдкрд░реАрдХреНрд╖рдг # 13147 рдкрд░ @ рдЕрдЪрдзреАрддрд▓рд╛ рджреНрд╡рд╛рд░рд╛
I think this must already be tested in the helpers test? Please do investigate and open a PR to remove if true.

  • [рдПрдХреНрд╕] [ рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/input_test.js) (: lock: by @padobrien)
This is testing the `<input>` HTML element, not the `{{input}}` helper. I won't be surprised if a lot of them doesn't work in Glimmer 2 yet, but it would be very helpful to know. Please port the test cases and flag with `@htmlbars` as needed.

  • [x] ["рд╕реНрдерд╛рдиреАрдп рдЦреЛрдЬ" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/helper-lookup-test.js): рдХреИрдВрдЪреА:
I'm not sure if this is implemented in Glimmer 2 yet. Please port the test cases and flag with `@htmlbars` as needed.

  • [x] ["рдореНрдпреВрдЯреЗрдмрд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ" рдЯреЗрд╕реНрдЯ] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/mutable_binding_nest.js): рд▓реЙрдХ
The Glimmer 2 implementation might change the story a bit, locking for now.

  • [x] [ select рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/select_in_tilplate_test.js): рдХреИрдВрдЪреА: # резрейрезрекрек @HeroicEric рджреНрд╡рд╛рд░рд╛
This is legacy. Please open a PR to remove the test and any code you could find that implements the feature.

  • [x] [ "tagless рд╡рд┐рдЪрд╛рд░реЛрдВ" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/tagless_views_rerender_test.js): рдХреИрдВрдЪреА: # 13146 рджреНрд╡рд╛рд░рд╛ @ рдЪрдвреАрддрд╛рд▓рд╛
I'm pretty sure this is already tested somewhere in the `if/each` tests. (The concept "tagless views" doesn't make any sense because even in htmlbars they are not implemented as views anymore.) If I am wrong, please port them into the `if/each` test files as appropriate and :scissors: this.

  • [x] ["рд╢реВрдиреНрдп рддрддреНрд╡" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/void-element-component-test.js): рдХреИрдВрдЪреА: # 13187 @MatrixZ рджреНрд╡рд╛рд░рд╛
I'm pretty sure this is already tested in the components test. (`tagName` is not implemented yet, but it doesn't seem important for the test.) If I am wrong, please port them into the curly component test files as appropriate and :scissors: this.

  • [x] ["willDestroyElement" рдкрд░реАрдХреНрд╖рдг (: рд▓реЙрдХ: @krisselden рджреНрд╡рд╛рд░рд╛)
I don't think the `willDestroyElement` hook is implemented in Glimmer 2, but the `willDestroy` hook is (and we already have tests for them in https://github.com/emberjs/ember.js/blob/master/packages/ember-glimmer/tests/integration/components/curly-components-test.js#L202). ~~Please investigate if there are any semantic differences (ordering, etc) between the two hooks. If they have the same semantics, we might just want to merge the two tests and test it "matrix style" (please check if the two tests are actually testing the same thing, if not, it's perfectly fine to have > 1 test).~~ Otherwise please port it with `@htmlbars`.

  • [x] [рдкрд░реАрдХреНрд╖рдг "+ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде"] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/integration/with_view_test.js): рдХреИрдВрдЪреА: # 13149 рд╕реЗ @ рдЪрдбреНрдвреАрдЯрд╛рд▓рд╛
The `{{view}}` part is obviously legacy, if there are something that we didn't otherwise cover in the `{{#with}}` tests, please port them there, otherwise :scissors: /cc <strong i="13">@chadhietala</strong>

  • [] ["рдиреЛрдб рдкреНрд░рдмрдВрдзрдХ рджреЗрдЦреЗрдВ" рдкрд░реАрдХреНрд╖рд╛] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/node-managers/view-node-manager-test.js ): рдХреИрдВрдЪреА: рдкреНрд░рд╢реНрди:

ViewNodManager рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╢рд╛рдпрдж рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрд┐рдкрдХрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рдЪреАрдЬреЗрдВ рдЕрднреА рднреА htmlbars рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╢рд╛рдпрдж: рдХреИрдВрдЪреА: рдпрд╣? @rwjblue рдЖрдк рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

  • "рд╕рд┐рд╕реНрдЯрдо" рдкрд░реАрдХреНрд╖рдг

    • [x] ["рдПрдкреЗрдВрдбреЗрдб рдЯреЗрдореНрдкрд▓ рд╡реНрдпреВ"] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/system/append-templated-view-test.js): рдХреИрдВрдЪреА: # 13148 @ рдЪрдбреНрдвреАрдЯрд╛рд▓рд╛ рджреНрд╡рд╛рд░рд╛

This is likely legacy. Please do investigate!

  • [x] ["рдмреВрдЯрд╕реНрдЯреНрд░реИрдк" рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/system/bootstrap_test.js: рдкреНрд░рд╢реНрди: рддрд╛рд▓рд╛: @krisselden
This seems to be testing `Ember.TEMPLATES`. I don't know if this is legacy, locking for now. <strong i="11">@rwjblue</strong> can you confirm and update this item? If it's legacy, we can just :scissors: this and the implementation. If it's not, I assume it's already handled at the container/resolver level and they should Just WorkтДв in Glimmer 2 after porting.

  • [] ["рд▓реБрдХрдЕрдк рд╣реЗрд▓реНрдкрд░" рдЯреЗрд╕реНрдЯреНрд╕
Please do investigate what this is testing, and see if it could be merged into the helpers integration tests.

  • [x] ["env" рдкрд░реАрдХреНрд╖рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/system/render_env_test .js): рдХреИрдВрдЪреА: рддрд╛рд▓рд╛: https: : //github.com/emberjs/ember.js/pull/13399 @mixonic
This seems to be testing 'view.env`. I don't know if this is legacy, locking for now. @rwjblue/<strong i="22">@wycats</strong> can you confirm and update this item?

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

рд╕рдореАрдХреНрд╖рд╛

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЕрдкрдирд╛ PR рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдВ (рдХреГрдкрдпрд╛ WIP PRs рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ!), рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдкрдиреЗ рдкреАрдЖрд░ рд╡рд┐рд╡рд░рдг рдореЗрдВ рджреЗрдЦреЗрдВ, рддрд╛рдХрд┐ рд╣рдо рдЙрдирдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд╕рдХреЗрдВред

рд╕рдордп рд╕реАрдорд╛

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

рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рдж! : рд╣реНрд░рджрдп:: рдкреАрд▓рд╛_рд╣рд╛рд░реНрдЯ:: рд╣рд░рд╛_рд╣рд░реНрдЯ:: рдиреАрд▓рд╛_рд╣рд╛рд░реНрдЯ:: рдмреИрдВрдЧрдиреА_рд╣рд╛рд░реНрдЯ:

Glimmer2 Help Wanted

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

рдмрд╕ рдореЗрдВ рдХреВрджрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! Delay рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдорд╛рдлреА - рд╣рдо рдзреАрд░реЗ-рдзреАрд░реЗ рдЦреБрдж рдХреЛ рдмреИрдХрд▓реЙрдЧ рд╕реЗ рдЦреЛрдж рд░рд╣реЗ рд╣реИрдВ; рд╣рдо рдЧрд┐рддреБрдм рдХреА рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИ: рдХреНрдпреЛрдВрдХрд┐ рддрд╛рд▓рд╛: рдПрдб рдЖрдЗрдЯрдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреАрдЖрд░ рд╣реИрдВ рдЬреЛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ appears

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

рдореИрдВ "willDestroyElement" рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рджреЗрдЦреВрдВрдЧрд╛ред

рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ InInEElement рдХрд╛ рдЙрд▓рдЯрд╛ рд╣реЛрдирд╛ рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ DOM рдЖрдВрд╕реВ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ willDestroy рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ DOM рдЖрдВрд╕реВ рдХреЗ рдмрд╛рдж async рд╣реИред рдпрд╣ рднреА рдХреЗрд╡рд▓ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЕрдЧрд░ didInsertElement рд╣реБрдХ рдЪрд▓рд╛ред

@GavinJoyce рдЗрд╕ рдЬреАрд╡рди рдЪрдХреНрд░ рд╣реБрдХ рдлрд╛рдпрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдШрдЯрдХ рд╣реЗрд▓реНрдкрд░ рдореЗрдВ htmlbars рдореЗрдВ рдПрдХ рд╡рд░реНрддрдорд╛рди рдмрдЧ рд╣реИред https://github.com/emberjs/ember.js/issues/13028

рдпрд╣ рднреА рд╡рд░реНрддрдорд╛рди рдХреЗ рд╕рд╛рде рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ рд╡рд░рдирд╛ https://github.com/emberjs/ember.js/issues/12716

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

рдХреНрдпрд╛ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рд╕рдВрднрд╡рддрдГ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ / рд╣рдЯрд╛рддреЗ рд╣реИрдВред / cc @wycats @chancancode

  • [x] [ loc рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/loc_test.js) ( # 13129 )

рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рдХрд┐ рдЕрдкреНрд░рдпреБрдХреНрдд #with рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • [x] рд╡рд┐рд░рд╛рд╕рдд #with рдкрд░реАрдХреНрд╖рдг # 13130 тАЛтАЛрдирд┐рдХрд╛рд▓реЗрдВ

рдкреАрдЖрд░ # 13131

  • [x] [ log рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/log_test.js
  • [x] [ debug рдкрд░реАрдХреНрд╖рдг] (https://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/tests/helpers/debug_test.js)

рдореИрдВ unbound : рд▓реЙрдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реВрдВ:

рдореИрдВ each-in рдкрд░реАрдХреНрд╖рдг рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред

@chancancode - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо debug tests рдЖрдЗрдЯрдо рдХреЛ рдмрдВрдж / рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред

  • [x] custom-helper-tests ред

https://github.com/emberjs/ember.js/issues/13139 рдЕрдкреНрд░рдпреБрдХреНрдд glimmer-component рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ

рдореИрдВ "рдмреЗрд╕рд┐рдХ рдХрдВрдЯреЗрдВрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЯреЗрд╕реНрдЯреНрд╕" рд▓реЗ рд░рд╣рд╛ рд╣реВрдВ (рдФрд░ рдЧреНрд▓рд┐рдорд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдареАрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)

рдореИрдВ " select рдкрд░реАрдХреНрд╖рдг: рдХреИрдВрдЪреА рд▓реЗ рд░рд╣рд╛ рд╣реВрдВ:"

  • x

5c12157 рдореЗрдВ рд╢реБрд░реВ рдХреА рдЧрдИ рдореИрдЪ рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди

рдореИрдВ input рддрддреНрд╡ рдкрд░реАрдХреНрд╖рдг рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдпрджрд┐ рд╡реЗ рдЕрднреА рднреА рд▓реЙрдХ рдирд╣реАрдВ рд╣реИрдВред

  • [x] рдЯреИрдЧ рд░рд╣рд┐рдд рд╡рд┐рдЪрд╛рд░ рдкрд░реАрдХреНрд╖рдг # резрейрезрекрем: рдХреИрдВрдЪреА:
  • [x] рд╣реЗрд▓реНрдкрд░ рд▓реБрдХрдЕрдк рдЯреЗрд╕реНрдЯ # 13147 рдорд╛рдЗрдЧреНрд░реЗрдЯ рдФрд░ рдХреИрдВрдЪреА:
  • [x] "рдЯреЗрдореНрдкрд░реНрдб рд╡реНрдпреВ рджреЗрдЦреЗрдВ" # резрейрезрек scissors: рдХреИрдВрдЪреА:
  • [x] "рд╡рд┐рде + рд╡реНрдпреВ" рдкрд░реАрдХреНрд╖рдг # резрейрезрек реп: рдХреИрдВрдЪреА:

рдореИрдВ рджреЗрдЦ рд▓реВрдВрдЧрд╛

  • [x] рд╣реЗрд▓реНрдкрд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ # резрейрез :рей: рддрд╛рд▓рд╛:

рдореИрдВ рдЕрднреА рддрдХ Glimmer2 рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рд╡реИрд╕реЗ рднреА # 13103 рдЕрдм рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдореБрдЭреЗ рдХреНрд▓реЛрдЬрд░ рдШрдЯрдХреЛрдВ рдкрд░ рдмрдЧ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ closure component рдкрд░реАрдХреНрд╖рдг рд▓реВрдВрдЧрд╛

рд╣рдо рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЗ рд╣реБрдХ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рд▓реЙрдХ: рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг: ok_hand:

"рд╢реВрдиреНрдп рддрддреНрд╡" рдкрд░реАрдХреНрд╖рдг # 13187: рдХреИрдВрдЪреА:

block params рдкрд░реАрдХреНрд╖рдг # 13189

: рддрд░рдВрдЧ: рдореИрдВ рд▓реВрдВрдЧрд╛:

рдореИрдВ рдЙрдкрдЬ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛

  • [] рдЙрдкрдЬ рдкрд░реАрдХреНрд╖рдг

рдореИрдВ рднреА рдЖрдЧреЗ рдмрдврд╝реВрдБрдЧрд╛ рдФрд░ attrs_lookup рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛: PR # 13203

рдореИрдВрдиреЗ partial рд╕рд╣рд╛рдпрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП # 13199 рдЦреЛрд▓рд╛ рд╣реИред

binding integration рдкрд░реАрдХреНрд╖рдг рднреА рд▓реЗрдирд╛

13213 {{yield}} рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ

closure component рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП # 13214 рдЦреЛрд▓реЗрдВред

{{tesxtarea}} 13215

рдореИрдВ view рд╣реЗрд▓реНрдкрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рд▓реЗ рдЬрд╛рдКрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрд╕рдиреЗ рдЫреБрдЖ рдерд╛ред

рдмрд╕ рдореЗрдВ рдХреВрджрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! Delay рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдорд╛рдлреА - рд╣рдо рдзреАрд░реЗ-рдзреАрд░реЗ рдЦреБрдж рдХреЛ рдмреИрдХрд▓реЙрдЧ рд╕реЗ рдЦреЛрдж рд░рд╣реЗ рд╣реИрдВ; рд╣рдо рдЧрд┐рддреБрдм рдХреА рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИ: рдХреНрдпреЛрдВрдХрд┐ рддрд╛рд▓рд╛: рдПрдб рдЖрдЗрдЯрдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреАрдЖрд░ рд╣реИрдВ рдЬреЛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ appears

рдореИрдВ {{#each}} рдЯреЗрд╕реНрдЯ рд▓реВрдВрдЧрд╛: # 13349

рдореИрдВ "рд╕реНрдерд╛рдиреАрдп рдЦреЛрдЬ" рдкрд░реАрдХреНрд╖рдг рд▓реВрдВрдЧрд╛

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ system/lookup-helper_test.js рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ findHelper рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реА рд╣реИ, рдЬреЛ рдореБрдЭреЗ integration/helpers/custom-helper-tests.js рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ ember-glimmer рд▓рд┐рдм рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж that? @chadhietala @asakusuma рдЪреВрдВрдХрд┐ рдЖрдк рджреЛрдиреЛрдВ рдиреЗ рд╕рд╣рд╛рдпрдХ-рд▓реБрдХ-рд╕рдВрдмрдВрдзреА-рд╕рдВрдмрдВрдзрд┐рдд рдкрд░реАрдХреНрд╖рдг рдЫреБрдЖ рд╣реИ, рдЖрдк рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдЬреЛрдПрд▓рдХрд╛рдВрдЧ рдореИрдВ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореИрдВрдиреЗ рдЬреЛ рд╕рдЯреАрдХ рдлрд╛рдЗрд▓реЗрдВ

@asakusuma рдУрд╣ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рд╕реЗ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд▓реБрдХрдЕрдк рдЯреЗрд╕реНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡рд╣рд╛рдВ рдХреЛрдИ рд╕рдорд╛рдирддрд╛ рд╣реИ

integration/helpers/custom-helper-tests.js рд╕реНрдерд╛рдиреАрдп рд▓реБрдХрдЕрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдерд╛рдиреАрдп рд▓реБрдХрд┐рдВрдЧ рдЕрднреА рдЭрд▓рдХ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рдареАрдХ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд░реЗрдВрдбрд░ рдПрдирд╡ рдЯреЗрд╕реНрдЯ рдЫреАрди рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдм "рдмреВрдЯрд╕реНрдЯреНрд░реИрдк" рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ( <script type="text/x-handlebars" data-template-name="foo"> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред

рдпрд╣рд╛рдБ mutable bindings рдХрд╛ рд╕рд░рд▓ рдкреНрд░рд╡рд╛рд╕ рдХрд┐рдпрд╛: https://github.com/emberjs/ember.js/pull/13456

рдХреНрд▓реЛрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдЯреЗрд╕реНрдЯ рдкрд╣рд▓реЗ рд╣реА рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдкрд╣рд▓реЗ рд╣реА рдорд░реНрдЬ рд╣реЛ рдЪреБрдХреЗ рдереЗред

рдпрд╣рд╛рдБ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! рдПрдХ рдЕрджреНрдпрддрди рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ / рдореБрджреНрджреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛: # 13644ред

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

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

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

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

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

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

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