рд╣рдо Ember.js рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рд╕реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╣реИред рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдкрд╣рд▓реА рдЫрдорд╛рд╣реА рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд┐рд╖рдпреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ:
- рдПрдореНрдмрд░ рд╕реАрдПрд▓рдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
- рдПрдореНрдмрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди
- рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмреАрдЪ рдмрдирд╛рдПрдБ рдФрд░ рд▓рд┐рдВрдХ рдХрд░реЗрдВ
- рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдФрд░ рдШрдЯрдХреЛрдВ
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг
- рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
- рдорд╛рд░реНрдЧреЛрдВ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдЦрдВрдб
- рдПрдореНрдмрд░ рдкрд░ рд╕реЗрд╡рд╛рдПрдВ
- рдПрдореНрдмрд░ рдбреЗрдЯрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
- рдПрдбреЗрдкреНрдЯрд░ рдФрд░ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ
- рдкреНрд░рджрд╛рддрд╛ рдШрдЯрдХ рдкреИрдЯрд░реНрди
рд╡рд╛рдкрд╕ рдмреИрдареЛ, рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЛ рдЦреЛрд▓реЗрдВ, рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдвреВрдВрдвреЗрдВ рдФрд░ рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдФрд░ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдХрдард┐рдирд╛рдИ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдбрд┐рд╕реЙрд░реНрдб рдХрдореНрдпреБрдирд┐рдЯреА рдЪреИрдирд▓ (рд░реВрд╕реА рдЪреИрдирд▓ # рд▓реИрдВрдЧ-рд░рд╢рд┐рдпрди ) рдФрд░ рд╕рд╛рде рд╣реА рд░реВрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ ember_js рдореЗрдВ рдорджрдж рдорд╛рдВрдЧ рд╕рдХрддреЗ рд╣реИрдВ
рдШрдЯрдХ рд╡рд┐рд╡рд░рдг
рдпрд╣ рдЕрдВрддрддрдГ рдХрд┐рд░рд╛рдпреЗ рдХреА рд╕реВрдЪреА рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:

рдХрд┐рд░рд╛рдпреЗ рдХреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдЗрд╕ рд╕реВрдЪреА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ, рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ:
- рдШрдЯрдХ рдкреАрдврд╝реА
- рдиреЗрдорд╕реНрдкреЗрд╕ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХрд╛ рдЖрдпреЛрдЬрди
- рдЕрдЧреНрд░реЗрд╖рдг HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде
...attributes
- рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреА рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг
рдШрдЯрдХ рдкреАрдврд╝реА
рдЪрд▓реЛ <Rental>
рдШрдЯрдХ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдмрд╛рд░ рд╣рдо рдПрдХ рдШрдЯрдХ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
$ ember generate component rental installing component create app/components/rental.hbs skip app/components/rental.js tip to add a class, run `ember generate component-class rental` installing component-test create tests/integration/components/rental-test.js
рдЬрдирд░реЗрдЯрд░ рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рджреЛ рдирдИ рдлрд╛рдЗрд▓реЗрдВ app/components/rental.hbs
: app/components/rental.hbs
рдореЗрдВ рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ tests/integration/components/rental-test.js
рдореЗрдВ рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреЗрд╕реНрдЯ рдлрд╛рдЗрд▓ред
рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдПрдХ рдкрдЯреНрдЯреЗ рдкрд░ рджреА рдЧрдИ рд╡рд╕реНрддреБ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░реЗрдВ , рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред

рдлрд┐рд░ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рднреА рд╡рд┐рд╡рд░рдг рдореМрдЬреВрдж рд╣реИрдВред рд╣рдо рдЕрдкрдиреА рдЯреАрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░реАрдХреНрд╖рд╛ рдХреА рдЬрдЧрд╣ рд▓реЗрдВрдЧреЗ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ <Jumbo>
рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛:

рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдВрдд рдореЗрдВ, рдкреЗрдЬ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдХреНрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдкреГрд╖реНрда рдкрд░ рддреАрди рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдЧреНрд░реИрдВрдб рдУрд▓реНрдб рдореЗрдВрд╢рди рдХреЛ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП <Rental>
рдШрдЯрдХ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

рдереЛрдбрд╝реЗ рд╕реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ!
рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХрд╛ рдЖрдпреЛрдЬрди
рдЕрдЧрд▓рд╛, рдХрд┐рд░рд╛рдпреЗ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╡рд┐ рдЬреЛрдбрд╝реЗрдВред рд╣рдо рдлрд┐рд░ рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
$ ember generate component rental/image installing component create app/components/rental/image.hbs skip app/components/rental/image.js tip to add a class, run `ember generate component-class rental/image` installing component-test create tests/integration/components/rental/image-test.js
рдЗрд╕ рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рдирд╛рдо рдкрд░ /
рдереАред рдЗрд╕рд╕реЗ app/components/rental/image.hbs
рдореЗрдВ рдПрдХ рдШрдЯрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг app/components/rental/image.hbs
, рдЬрд┐рд╕реЗ <Rental::Image>
рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕реА рддрд░рд╣ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдиреЗрдорд╕реНрдкреЗрд╕ рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд╛рдо рд╕реНрдерд╛рди рд╣рдореЗрдВ рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЙрдирдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдк рдПрдХ рдЯреАрдо рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЕрдЧреНрд░реЗрд╖рдг HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде ...attributes
рдЪрд▓реЛ рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

<img>
рдореЗрдВ src
рдФрд░ alt
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдП, рд╣рдордиреЗ рдХреАрд╡рд░реНрдб ...attributes
рдЪреБрдирд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдХрднреА-рдХрднреА "splattributes" рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЗрд╕ рдШрдЯрдХ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:

рд╣рдордиреЗ рдпрд╣рд╛рдВ HTML рд╡рд┐рд╢реЗрд╖рддрд╛ src
рдФрд░ alt
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдШрдЯрдХ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддрддреНрд╡ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ ...attributes
рдШрдЯрдХ рдШрдЯрдХ рдореЗрдВ ...attributes
рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ {{yield}}
рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдерд╛ рдЬрдм рд╣рдордиреЗ class
<LinkTo>
рдХреЛ <LinkTo>
ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░рд╛ <Rental::Image>
рдШрдЯрдХ рд╕рд╛рдЗрдЯ рдкрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХрд┐рд░рд╛рдпреЗ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рдмреЗрд╢рдХ, рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╕рдмрдХреБрдЫ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЬрд▓реНрдж рд╣реА рдЗрд╕рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рдЗрд╕ рдмреАрдЪ, рд╣рдо рдкреВрд░реЗ рд╣рд╛рд░реНрдбрдХреЛрдб рдХреЛ рдПрдХ рдШрдЯрдХ рдореЗрдВ рд╕реАрдорд┐рдд рдХрд░ рджреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЬрдм рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВ рддреЛ рдЗрд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдкрдХреЗ рдШрдЯрдХ рдореЗрдВ рдореВрд▓ рддрддреНрд╡ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХрддрдо рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣реБрдВрдЪрдХрд░реНрддрд╛ рдХреЛ рд╕реБрдЧрдорддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдпрд╛ ARIA рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рд╣рдорд╛рд░реЗ рдирдП рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВ!

рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреА рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг
рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <Rental>
рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ <Rental::Image>
ред

рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА <Rental::Image>
рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╣рдо рд╡рд┐рд╡рд░рдг рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЪреЗрдХ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рднреА рд╣рдо <Rental::Image>
рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ <Rental>
рдЯреЗрд╕реНрдЯ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдШрдЯрдХ
рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рдЖрдк рдкреГрд╖реНрда рдореЗрдВ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЙрд╕реЗ рдмрдбрд╝рд╛ рдпрд╛ рдЫреЛрдЯрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ:
- рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛрдбрд╝рдирд╛
- рдкреНрд░рд╡реЗрд╢ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ
- рдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рд░рд╛рдЬреНрдп рдкреНрд░рдмрдВрдзрди
- рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рд╕рд╢рд░реНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
- рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛
- рдПрд▓рд┐рдореЗрдВрдЯ рдореЙрдбрд┐рдлрд╛рдпрд░реНрд╕ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдкрд░реАрдХреНрд╖рдг
рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛрдбрд╝рдирд╛
рдЕрдм рддрдХ, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рд╕рднреА рдШрдЯрдХ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрддрд┐рдХрд░рдг рд╣реИрдВ - рд╡реЗ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдорд╛рд░реНрдХрдЕрдк рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЕрджреНрднреБрдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдореНрдмрд░ рдШрдЯрдХреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рдХрднреА-рдХрднреА рдЖрдк рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, <LinkTo>
URL рдмрджрд▓рдХрд░ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдХрд░ рдХреНрд▓рд┐рдХреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рд╣рдо рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ! рд╣рдо ┬лView Larger┬╗
рдФрд░ ┬лView Smaller┬╗
рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдШрд░ рдкрд░ рдЫрд╡рд┐ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ, рдмрдбрд╝реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдХреЛ рджреЛ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдХрд┐рд╕ рд░рд╛рдЬреНрдп рдореЗрдВ рд╣реИред
рдПрдореНрдмрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдШрдЯрдХ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдЪрд▓рд╛рдХрд░ рдЕрдкрдиреЗ <Rental::Image>
рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
$ ember generate component-class rental/image installing component-class create app/components/rental/image.js
рдЗрд╕ рдХрдорд╛рдВрдб рдиреЗ app/components/rentals/image.js
рдореЗрдВ рд╣рдорд╛рд░реЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╛рдЗрд▓ app/components/rentals/image.js
ред рдЗрд╕рдореЗрдВ @glimmer/component
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдЬрд╝реЛ рдмрддрд╛рддреЗ рд╣реИрдВ ...
@glimmer/component
рдЧреНрд▓рд┐рдорд░ @glimmer/component
рдпрд╛ рдЧреНрд▓рд┐рдорд░ рдШрдЯрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдШрдЯрдХреЛрдВ рдХреЗ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рдПрдХ рдорд╣рд╛рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдЧреНрд▓рд┐рдорд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рдЧреНрд▓рд┐рдорд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдкреБрд░рд╛рдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП @ember/components
(рдХреНрд▓рд╛рд╕рд┐рдХ рдШрдЯрдХреЛрдВ) рдХреЛ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдорд╛рд░реНрдЧ рдХреЛ рджреЗрдЦрдХрд░ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐ рдЙрдкрдпреБрдХреНрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ рдФрд░ рдЕрд╕рдВрдЧрдд рдПрдкреАрдЖрдИ рд╣реИрдВ)ред
рдЬрдм рднреА рд╣рдорд╛рд░реЗ рдШрдЯрдХ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдореНрдмрд░ рдЙрд╕ рд╡рд░реНрдЧ рдХреЛ рддреБрд░рдВрдд рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдпрд╣рд╛рдВ, рдХрдВрдкреЛрдиреЗрдВрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ , рд╣рдордиреЗ this.isLarge
рдЪрд░ рдХреЛ this.isLarge
рдХрд┐рдпрд╛ рд╣реИред рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдпрд╣ false
, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбрд┐рдлреЙрд▓реНрдЯ рд╕реНрдЯреЗрдЯ рд╣реИ рдЬреЛ рд╣рдо рдЕрдкрдиреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдкреНрд░рд╡реЗрд╢ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ
рдЖрдЗрдП рдЗрд╕ рдЕрд╡рд╕реНрдерд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрднреА рдЬреЛрдбрд╝рд╛ рд╣реИ:

рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдШрдЯрдХ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИред рд╕рд╢рд░реНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ {{#if ...}}...{{else}}...{{/if}}
рдЖрдкрдХреЛ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдЪрд░ рдХрд╛ рдорд╛рди рдЗрд╕ this.isLarge
)ред рдЗрди рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░, рд╣рдо рдХреНрд░рдорд╢рдГ рдЫрд╡рд┐ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рдФрд░ рдмрдбрд╝реЗ рд╕рдВрд╕реНрдХрд░рдг рджреЛрдиреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдЕрдкрдиреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдмрджрд▓рдХрд░ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рдо app/components/rental/image.js
рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП app/components/rental/image.js
this.isLarge = true
ред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╣рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░реЙрдкрд░реНрдЯреА рдЗрдореЗрдЬ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╣!

рд╣рдордиреЗ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред this.isLarge
рд╡рд╛рдкрд╕ false
рдмрджрд▓ this.isLarge
ред
рдЪреВрдВрдХрд┐ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдЪрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреИрдЯрд░реНрди рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ:

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

рд╣рдордиреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдХреА рд╣реИрдВ, рддреЛ рдЪрд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ @tracked
рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЛ @tracked
рдЙрджрд╛рд╣рд░рдг isLarge
рдЬреЛрдбрд╝рд╛ред рдпрд╣ рдПрдиреЛрдЯреЗрд╢рди рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдореНрдмрд░ рдХреЛ рдЗрд╕ рдЪрд░ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред рдЬрдм рднреА рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдЪрд░ рдХрд╛ рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдореНрдмрд░ рдЕрдкрдиреЗ рдореВрд▓реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд┐рд╕реА рднреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рднреА рд╣рдо рдЗрд╕ this.isLarge
рдХреЛ рдПрдХ рдирдпрд╛ рдорд╛рди рдкреНрд░рджрд╛рди this.isLarge
, рддреЛ this.isLarge
рдПрдиреЛрдЯреЗрд╢рди, рд╣рдорд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕реНрдерд┐рддрд┐ {{#if this.isLarge}}
рдХреЛ {{#if this.isLarge}}
рдХрд░рдиреЗ рдФрд░ рдХреНрд░рдорд╢рдГ рджреЛ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛ред
рдЬрд╝реЛ рдмрддрд╛рддреЗ рд╣реИрдВ ...
рдЪрд┐рдВрддрд╛ рдордд рдХрд░реЛ! рдпрджрд┐ рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдЪрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди @tracked
рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдП, рддреЛ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдмрджрд▓рддреЗ рд╕рдордп рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА!
рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рдлрд┐рд░ рд╣рдордиреЗ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ toggleSize
рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рд╛, рдЬреЛ рдЗрд╕ рд╕реНрд╡рд┐рдЪ рдХреЛ рдЪрд╛рд▓реВ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╡рд┐рдкрд░реАрдд this.isLarge
( false
true
рд╣реЛ рдЬрд╛рддреА true
рдпрд╛ true
false
рд╣реЛ рдЬрд╛рддреА true
)ред
рдЕрдВрдд рдореЗрдВ, рд╣рдордиреЗ рдЕрдкрдиреА рд╡рд┐рдзрд┐ рдореЗрдВ @action
рдЬреЛрдбрд╝рд╛ред рдпрд╣ рдПрдореНрдмрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдЗрд╡реЗрдВрдЯ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░) рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдзрд┐ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред
рдЬрд╝реЛ рдмрддрд╛рддреЗ рд╣реИрдВ ...
рдпрджрд┐ рдЖрдк @action
рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рднреА рдорд┐рд▓реЗрдЧреА!
рдЕрдм рдЗрд╕реЗ рдЦрд╛рдХреЗ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:

рд╣рдордиреЗ рджреЛ рдЪреАрдЬреЗрдВ рдмрджрд▓реА рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪреВрдБрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдШрдЯрдХ рдХреЛ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рд╣рдордиреЗ рдпреБрдХреНрдд рдЯреИрдЧ рдХреЛ <div>
рд╕реЗ <button>
рд╕реНрд╡рд┐рдЪ рдХрд░ рджрд┐рдпрд╛ (рдпрд╣ рдкрд╣реБрдБрдЪ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ)ред рд╕рд╣реА рд╢рдмреНрджрд╛рд░реНрде рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо "рдлрд╝реНрд░реА" рдлрд╝реЛрдХрд╕ рдФрд░ рдХреАрдмреЛрд░реНрдб рдЗрдВрдЯрд░реИрдХреНрд╢рди рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдордиреЗ рдЗрд╕ рдмрдЯрди рдХреЛ рдЕрдЯреИрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП {{on}}
рд╕рдВрд╢реЛрдзрдХ рдХрд╛ this.toggleSize
рдХрд┐рдпрд╛ред рдмрдЯрди рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдШрдЯрдХ рдмрдирд╛рдпрд╛ред рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдкрд░реАрдХреНрд╖рдг
рдЕрдВрдд рдореЗрдВ, рдЖрдЗрдП рдЗрд╕ рдирдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рд╛ рд▓рд┐рдЦреЗрдВ:


рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо

рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВред рд╣рдордиреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЬреЛрдбрд╝реЗ рдЬрдм рд╣рдордиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╕рдореНрдорд┐рд▓рд┐рдд рдХреАрдВред рдпрджрд┐ рд╣рдо рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦреЗрдВ, рддреЛ рдЗрди рджреЛ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬреЗрдВ рд╣реИрдВ:
1) <button>
рдореЗрдВ "large"
рд╕реАрдПрд╕рдПрд╕ рд╡рд░реНрдЧ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ред
2) рдкрд╛рда ┬л┬╗
рдФрд░ ┬л┬╗
ред
рдпреЗ рдкрд░рд┐рд╡рд░реНрддрди рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛрдб рдореЗрдВ рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВред рд╣рдо рдЗрд╕рдХреЗ рдмрдЬрд╛рдп {{if}}
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛрд╣рд░рд╛рд╡ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг {{if}}
рджреЛ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╢рд░реНрдд рд╣реИ ред рджреВрд╕рд░рд╛ рддрд░реНрдХ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рдЬрд┐рд╕реЗ рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рд╕рддреНрдп рд╣реИ рддреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, {{if}}
рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╢рд░реНрдд рдХреЗ рдЧрд▓рдд рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдмрдЯрди рд▓реЗрдмрд▓ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

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

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

рдирдХреНрд╢рд╛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ:
- рдЖрд╡реЗрджрди рд╕реНрддрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдмрдВрдзрди
- рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдХреЛрдВ рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░
- рдШрдЯрдХ рддрд░реНрдХреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ
- рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЗрдВрдЯрд░рдкреЛрд▓ рдХрд░рдирд╛
- HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдореЗрдВ ... рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
- рдЧреЗрдЯрд░реНрд╕ рдФрд░ рдСрдЯреЛ-рдЯреНрд░реИрдХрд┐рдВрдЧ (рдСрдЯреЛ-рдЯреНрд░реИрдХ) рдХреЗ рд╕рд╛рде рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ
- рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЖрд╡реЗрджрди рд╕реНрддрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдмрдВрдзрди
рд╣рдо рдЕрдкрдиреА рдХрд┐рд░рд╛рдпреЗ рдХреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирдХреНрд╢реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдкрдмреЙрдХреНрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЖрдк рдореБрдлреНрдд рдФрд░ рдмрд┐рдирд╛ рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдкрдмреЙрдХреНрд╕ рдПрдХ рд╕реНрдерд┐рд░ рдорд╛рдирдЪрд┐рддреНрд░ рдЫрд╡рд┐ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреАрдПрдирдЬреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдЪрд┐рддреНрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд URL рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдирдХ <img>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдХреНрд▓рд╛рд╕!
рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдкрдмреЙрдХреНрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдкрдирд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЯреЛрдХрди рд▓реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЯреЛрдХрди) рдФрд░ рдЗрд╕реЗ config/environment.js
рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ:


рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, config/environment.js
рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдЗрди рдЬреИрд╕реЗ API рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡реЗрд╢ (рдЬреЛ рд╡рд┐рдХрд╛рд╕, рдкрд░реАрдХреНрд╖рдг (рдкрд░реАрдХреНрд╖рдг) рдпрд╛ рдЙрддреНрдкрд╛рджрди (рдЙрддреНрдкрд╛рджрди)) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдирдХреЗ рднрд┐рдиреНрди рдореВрд▓реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрд╝реЛ рдмрддрд╛рддреЗ рд╣реИрдВ ...
рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЕрд▓рдЧ- рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореИрдкрдмреЙрдХреНрд╕ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ред рдХрдо рд╕реЗ рдХрдо, рдкреНрд░рддреНрдпреЗрдХ рдЯреЛрдХрди рдореЗрдВ рдореИрдкрдмреЙрдХреНрд╕ рд╕реНрдЯреЗрдЯрд┐рдХ рдЗрдореЗрдЬ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕реНрдЯрд╛рдЗрд▓: рдЯрд╛рдЗрд▓" рд╕реНрдХреЛрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдорд╛рд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЗрди рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, config/environment.js
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЖрдк рдЙрд╕ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдХреЛ рдвреВрдВрдврдХрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ ember server
рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдлрд┐рд░ "Ctrl" рдХреБрдВрдЬреА рджрдмрд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдХреАрдмреЛрд░реНрдб рдкрд░ "C" рдХреБрдВрдЬреА рджрдмрд╛рдХрд░ Ctrl + C рджрдмрд╛рдПрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрд╕реА ember server
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
$ ember server building... Build successful (13286ms) тАУ Serving on http://localhost:4200/
рдПрдХ рдШрдЯрдХ рд╡рд░реНрдЧ рдпреБрдХреНрдд рдПрдХ рдШрдЯрдХ рдмрдирд╛рдирд╛
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореИрдкрдмреЙрдХреНрд╕ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдирдХреНрд╢реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдмрдирд╛рдПрдВред
$ ember generate component map --with-component-class installing component create app/components/map.js create app/components/map.hbs installing component-test create tests/integration/components/map-test.js
рдЪреВрдБрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рдкрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдШрдЯрдХ рдЬрдирд░реЗрдЯрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛, рд╣рдо рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ <Map>
рдШрдЯрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдЕрднреА рддрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ! рдЗрд╕рд▓рд┐рдП, рд╣рдо --with-component-class
рдХреЗ рд╕рд╛рде --with-component-class
рдзреНрд╡рдЬ --with-component-class
рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реЛ рдЬреЛ рд╣рдореЗрдВ рд╢реБрд░реВ рд╕реЗ рд╣реА рдЪрд╛рд╣рд┐рдПред
рдЬрд╝реЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ ...
рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛? ember g component map -gc
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред -gc
рдзреНрд╡рдЬ рдЧреНрд▓рд┐рдорд░ рдШрдЯрдХ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ ( g limmer c omponent), рдФрд░ рд╡рд░реНрдЧ рдХреЛ рдЙрддреНрдкрдиреНрди рднреА рдХрд░рддрд╛ рд╣реИ ( g cerate c lass)
рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдШрдЯрдХреЛрдВ рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░
рдЖрдЗрдП рд╣рдорд╛рд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:

рдпрд╣рд╛рдВ рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЧреЗрдЯреНрдЯрд░ token
рд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рдЯреЛрдХрди рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред MapComponent
рд╡рд░реНрдЧ рдФрд░ рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рджреЛрдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдЯреЛрдХрди рдХреЛ рдПрдирдХреЛрдб рдХрд░рдирд╛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдпрджрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рд╣реИрдВ рдЬреЛ URL рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдкреИрдЯрд░реНрди рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдк
рдЕрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдЬрд╛рдПрдБ:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡ рд╣реИред
рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Mapbox рд╕реЗ рд╕реНрдерд┐рд░ рдорд╛рдирдЪрд┐рддреНрд░ рдЫрд╡рд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдФрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <img>
ред
рд╣рдорд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХрдИ рдорд╛рди рд╣реИрдВ рдЬреЛ рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ - @lat
, @lng
, @zoom
, @width
рдФрд░ @height
ред рдпреЗ <Map>
рдШрдЯрдХ рдХреЗ рддрд░реНрдХ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред
рдЕрдкрдиреЗ рдШрдЯрдХ рдХреЛ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдПрдХ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдШрдЯрдХ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕реЗ рджреЗрдЦрд╛ рдерд╛ рдЬрдм <LinkTo>
рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛; рд╣рдореЗрдВ @route
рддрд░реНрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА @route
рдпрд╣ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдХрд┐рд╕ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдирд╛ рд╣реИред
рд╣рдордиреЗ @lat
рдФрд░ @lng
рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреВрд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ @lng
ред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реАрдзреЗ alt
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдПрдореНрдмрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрди рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рдЖрд╡рд╢реНрдпрдХ рдмрдЪрдиреЗ рд╡рд╛рд▓реЗ HTML рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╢рд╛рдорд┐рд▓ рд╣реИред
HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ ...attributes
рддрдм рд╣рдордиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ ...attributes
рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП ...attributes
<img>
рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреИрд╕реЗ рдХрд┐ class
, рдФрд░ рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпрд╛ рдорд╛рдирд╡ рдЕрдиреБрдХреВрд▓ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ alt
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рднреА рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВред
рдЖрджреЗрд╢ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ! рдПрдореНрдмрд░ рдЙрдирдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ alt
рд╡реИрд▓реНрдпреВ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ (рдЖрд╡реЗрджрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ ...attributes
), рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ alt
рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЪреВрдВрдХрд┐ рдЙрддреНрддреАрд░реНрдг alt
рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ (рдпрджрд┐ рдХреЛрдИ рдореМрдЬреВрдж рд╣реИ) рд╣рдорд╛рд░реЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореВрд▓реНрдп рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдЧрд╛ред рджреВрд╕рд░реА рдУрд░, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рдо src
, width
рдФрд░ height
рдмрд╛рдж рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ ... рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рддрд╛рдХрд┐ рд╡реЗ рдЧрд▓рддреА рд╕реЗ рдЖрдХреНрд░рдордгрдХрд╛рд░реА рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рди рд╣реЛрдВред
src
рд╡рд┐рд╢реЗрд╖рддрд╛ рдореИрдкрдмреЙрдХреНрд╕ рд╕реНрдерд┐рд░ рдЫрд╡рд┐ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП URL рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ this.token
, рдЬрд┐рд╕рдореЗрдВ URL- рд╕реБрд░рдХреНрд╖рд┐рдд рдЯреЛрдХрди this.token
ред
рдЕрдВрдд рдореЗрдВ, рдЪреВрдВрдХрд┐ рд╣рдо @2x
"рд░реЗрдЯрд┐рдирд╛" рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдореЗрдВ width
рдФрд░ height
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛, <img>
рдЬрд┐рддрдирд╛ рд╣рдордиреЗ рдЙрдореНрдореАрдж рдХреА рдереА рдЙрд╕рд╕реЗ рджреЛрдЧреБрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛!
рд╣рдордиреЗ рдПрдХ рдШрдЯрдХ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдЬреЛрдбрд╝реЗ рд╣реИрдВ, рддреЛ рдЪрд▓реЛ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╣реИрдВ! рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдУрд╡рд░рд░рд╛рдЗрдб HTML рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рд╣реИ, рдЬрд┐рд╕рдХреА рд╣рдордиреЗ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдереАред



рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ qunit-dom
рд╕реЗ hasAttribute
рд╣реЗрд▓реНрдкрд░ hasAttribute
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред , , src
https://api.mapbox.com/
( , ). , , .
тАж .

, ! , ? , <Map>
<Rental>
:

!

...
, , config/environment.js
MAPBOX_ACCESS_TOKEN
. ! , Ember-.
<Rental>
, <Map>
.

- (auto-track)
<Map>
src
<img>
, . тАФ JavaScript .
JavaScript API this.args.*
. , URL .
...
this.args
тАФ API, Glimmer. (, ┬л┬╗ ) (legacy) , API JavaScript .


! !

, @tracked
. , , Ember .
, , , . , src
lat
, lng
, width
, height
zoom
this.args
. , , , {{this.src}}
.
Ember , . @tracked
, Ember , (invalidate) , ┬л┬╗ . (auto-track). , this.args
( , this.args.*
), @tracked
Glimmer. , (Just works).
JavaScript
, :



API this.setProperties
, .
, . ( !).
this
, render
. ┬л┬╗ . .
!

<Rental>
. , :

:
- (model hook)
- (mocking) JSON
- (remote)
{{#each}}
<Rental>
. , , , , . .
, , . , .
, Ember тАФ . , , .
. app/routes/index.js
:

, , . Route . , .
Route IndexRoute, , .
. ? model()
. .
, . Ember , . , , ( ).
, . , async
. await
. ( : , Promise Javascript )
. , , JavaScript ( POJO (Plain Old Javascript Object)).
, , , . @model
. POJO, .
, , title
:

, .

рдЕрджреНрднреБрдд!
, , , , , ! <Rental>
, .
.
-, <Rental>
@rental
. <h1>
, , :

@model
<Rental>
@rental
, ┬лGrand Old Mansion┬╗ <Rental>
! , @rental
.


, ┬лGrand Old Mansion┬╗, , .

, : , .
, , , , .
<Rental>
. , setProperties
, .

, <Rental>
render
@rental
. , !

(mocking) JSON
, , , , , !
, , , API. , API . JSON . , JSON HTTP- тАФ , API, тАФ - . рдХреВрд▓!
? , JSON .zip. public
.
, public
:
public тФЬтФАтФА api тФВ тФЬтФАтФА rentals тФВ тФВ тФЬтФАтФА downtown-charm.json тФВ тФВ тФЬтФАтФА grand-old-mansion.json тФВ тФВ тФФтФАтФА urban-living.json тФВ тФФтФАтФА rentals.json тФЬтФАтФА assets тФВ тФФтФАтФА images тФВ тФФтФАтФА teaching-tomster.png тФФтФАтФА robots.txt 4 directories, 6 files
, , URL http://localhost:4200/api/rentals.json
.

┬л┬╗ JSON. !
(remote)
. , .

?
, Fetch API JSON API /api/rentals.json
, URL, .
, . Fetch API , fetch
async
, . , await
.
Fetch API . , ; , JSON, json()
. , await
.
, , .


JSON:API , , .
-, JSON:API , "data"
, . ; , , , тАФ , .
, , . type
id
, (!). , , attributes
.
, , , , : , , type
, - . type
"Standalone" "Community", , <Rental>
.
JSON:API. .
:

(parsing) JSON attributes
, type
, . , , - .
! .
(helper) {{#each}}
, , тАФ index.hbs
, <Rental>
. @rental
@model
. , @model
тАФ ()! , , .
.

{{#each}}...{{/each}}
, . тАФ тАФ . тАФ <Rental>
, <li>
.
{{rental}}
. rental
? , ! as |rental|
each
. - , as |property|
, {{property}}
.
, .

рд╣реБрд░реНрд░реЗ! , . fetch
. , ?
, !

( 1.1 1.2)
Ember!
Ember, .
#Emberjs. Discord , ember_js
рдЬрдм рдЖрдк рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВрдЧреЗ, рддреЛ рд╣рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдХреНрдпрд╛ рд╕реАрдЦрд╛, рдФрд░ рдПрдХ рдирдП рд╕реНрддрд░ рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВ!
рдЕрджреНрдпрддрди: рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ MK1301 рдХреЛ рдзреНрд╡рд╕реНрдд рдХрд░рдирд╛ред