рдЖрдЬ, рд╕рдВрдЧрддрддрд╛ рдореЛрдб рдореЗрдВ рдХрдврд╝рд╛рдИ рдирдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдФрд░ рдХрдИ рдореМрдЬреВрджрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред staticComponents
, рдореЛрдб рдореЗрдВ Embroider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рдЬреЛ splitAtRoutes
рдореЛрдб рдХрд╛ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдПрдореНрдмреНрд░рд╛рдпрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдЕрдВрдХ # 501 рдПрдореНрдмреНрд░реЗрдпрд░ рд░рд┐рд▓реАрдЬ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдореНрдмреНрд░реЙрдЗрдб рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╢реЗрд╖ рдореБрджреНрджреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЙрди рдЪрд░рдгреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рдордХреНрд╖ рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд┐ рдорд╛рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рдХреЛрдб рд╡рд┐рднрд╛рдЬрди ("рдХрдврд╝рд╛рдИ рддрддреНрдкрд░рддрд╛") рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдПрдореНрдмреНрд░рд╛рдпрд░ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдореНрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдмрдХрд┐ Embroider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рджрд╛рдиреЗрджрд╛рд░ рддрд░реАрдХреЗ рд╣реИрдВ (рдПрдХ рд╕рдВрдЧрддрддрд╛ рдореЛрдб рд╕рд╣рд┐рдд, рдЬреЛ рдХреБрдЫ рдареЛрд╕ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдореНрдмреНрд░рд╛рдпрд░ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ), рдпрд╣ рдореБрджреНрджрд╛ рд╕рд╛рдорд╛рдиреНрдп Emr Application рдХреЗ рд╕рд╛рде Embroider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ рдФрд░ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдорд╛рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рдХреЛрдб рд╡рд┐рднрд╛рдЬрди рд╕реЗред
Embroider README рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдорд╛рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рдХреЛрдб рд╡рд┐рднрд╛рдЬрди ( splitAtRoutes
) рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрди рдЭрдВрдбреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
staticAddonTestSupportTrees
staticAddonTrees
staticHelpers
staticComponents
рдЕрдЧрд░ рдХреЛрдИ рдлрд╝рдВрдбрди рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрди рдЭрдВрдбреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╡реЗ "рдХреНрд▓рд╛рд╕рд┐рдХ рдбрд╛рдпрдирд╛рдорд┐рдХ рдлреАрдЪрд░реНрд╕" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
(component dynamicString)
рдХрдореА рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВEmbroider рддрддреНрдкрд░рддрд╛ ("MVP") рдХреЗ рдкрд╣рд▓реЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо рдмрд╛рдзрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реНрдерд┐рд░ рдЭрдВрдбреЗ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдкрд╛рдпрд╛ рд╣реИред
рдПрдорд╡реАрдкреА рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рднреА рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рд▓рдХреНрд╖реНрдп рд╣реИ рдЬреЛ рдЗрди рдЭрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд▓рдХреНрд╖реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП splitAtRoutes
рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рд╕рдВрдХреНрд░рдордг рдорд╛рд░реНрдЧ рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЙрд╕ рдореЛрдб рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд, рдЧреИрд░-рддреБрдЪреНрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рдПрдбреЛрди рдХреНрд▓рд╛рд╕рд┐рдХ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рджреВрд░ рдЪрд▓реЗ рдЧрдП рд╣реЛрдВрдЧреЗред рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рднреА рд╣реИ рдХрд┐ рдРрд╕реЗ рдРрдбреЛрди рдЬреЛ рдЕрдХреНрд╕рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрдореНрдмрд░ рдХрдВрд╕реАрд▓рд░, рдХреНрд▓рд╛рд╕рд┐рдХ рдбрд╛рдпрдирд╛рдорд┐рдХ рдлреАрдЪрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
staticComponents
рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдерд┐рд░ рдЭрдВрдбрд╛ рд╣реИ , рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдПрдорд╡реАрдкреА рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдзрд╛ рд╣реИред
staticComponents
рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди ( рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╣рд┐рдд ) (component dynamicString)
рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧреЛрдВ рд╕реЗ рдореБрдХреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЙрдирдХреЗ рдРрдбрдСрди рдХреЛ (component "static string")
staticComponents
рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреИрдЯрд░реНрди рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
{{#let (component this.componentName) as | Component |}}
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рддрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдШрдЯрдХреЛрдВ рдХреЛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕ рдРрдбрдСрди рдХреЛ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдШрдЯрдХ рдХреЛ рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рдВрдЯреЗрджрд╛рд░ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
this.component
рдХреЛthis.componentName = <code i="29">scaffolding/${dasherize(csId!)}/${dasherize(this.args.feature)}</code>
рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдареАрдХ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рд╕рдВрдХреНрд░рдордг рд░рдгрдиреАрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдХрдо рд╕реЗ рдХрдо, рдПрдбреЛрдиреЛрдВ рдХреЛ (component dynamicString)
рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ component
рдХреАрд╡рд░реНрдб рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдЖрд╣реНрд╡рд╛рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдореЗрдВ рдПрдХ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдПрдВрдЧрд▓-рдмреНрд░реИрдХреЗрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдШрдЯрдХ рдЖрд╣реНрд╡рд╛рди рдХреЛ рдбрд╛рдпрдирд╛рдорд┐рдХ component
рдХреАрд╡рд░реНрдб рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рд▓реЛрдЧ (component dynamic)
рд╕реЗ рдкрд▓рд╛рдпрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЧрд▓рддреА рд╕реЗ <dynamic>
рдкрд▓рд╛рдпрди рдХрд░реЗрдВрдЧреЗ, рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред
рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЖрдЗрдЯрдо:
(component)
рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ рдФрд░ рдЬрд╛рд░реА рдХрд░реЗрдВ рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдЯрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рд▓рд┐рдП RFC рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)staticHelpers
staticHelpers
рдзреНрд╡рдЬ рдПрдореНрдмрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд▓реЛрдбрд░ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╣рд╛рдпрдХреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧреАред
рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдПрдореНрдмрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛, рд▓реЗрдХрд┐рди staticComponents
рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдорд╕реНрдпрд╛рдПрдВред рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ MVP рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП staticHelpers
рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ splitAtRoutes
рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╡рд╛рд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдирдП рдПрдкреАрдЖрдИ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
staticAddonTrees
рдФрд░ staticAddonTestSupportTrees
рд╡рд░реНрддрдорд╛рди рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рдЭрдВрдбреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдПрдореНрдмрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдПрдбреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрдорд╡реАрдкреА рд▓рдХреНрд╖реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдПрдорд╡реАрдкреА рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдХ рдЯреНрд░реИрдХрд┐рдВрдЧ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдиреЗ рд░рд╣рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред рдПрдорд╡реАрдкреА рд▓рдХреНрд╖реНрдп рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдкреНрд░рд╡рд╛рд╕рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдПрд░реНрдЧреЛрдиреЙрдорд┐рдХреНрд╕ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдЬреЛ рдХреЛрдб рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ)ред рдЦрд╛рдХрд╛ рдЖрдпрд╛рдд рдЗрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рд╕рдВрдХреНрд░рдордг рдХреА рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдбрдСрди рдХреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдП рдХрд┐ рдЙрдирдХреЗ рдХреМрди рд╕реЗ рддрд░реНрдХ рдШрдЯрдХ рдХреЗ рдХреЙрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдПрдХ рд╕реНрдерд┐рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред
рдПрдХ рд╕реНрдкрд┐рдЯрдмреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ (рдЬрд╣рд╛рдВ better-component
рд╕реНрдерд┐рд░ рдШрдЯрдХ рдХреАрд╡рд░реНрдб рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рд╣реИ)ред
{{better-component <strong i="8">@arg</strong> staticString=true}}
рдЗрд╕рд╕реЗ рдПрдбрдСрди рдХреЛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ "рдбрд╛рдпрдиреЗрдорд┐рдХ рдЗрдирд╡реЛрдХреЗрд╢рди" рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреЙрд▓рд░ рд╕реНрдЯреИрдЯрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИред
рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдХ рдорд╛рдорд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╣реИрдВ, рд╕реАрдзреЗ рд╕реНрдЯреНрд░реЗрдЯ-рдлреЙрд░рд╡рд░реНрдб "рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдЯреВ рдПрдСрдиреЛрди" рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред
Idk рдЕрдЧрд░ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдордп-рд╕рдордп рдкрд░ emberclear рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдереИрддрд┐рдХрддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореБрджреНрджреЛрдВ рдФрд░ рдЙрдирдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдПрдХ рдкреЗрдкрд░ рдЯреНрд░реЗрд▓ рд░рдЦ рд░рд╣рд╛ рд╣реВрдВред
https://github.com/NullVoxPopuli/emberclear/pull/784
рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд░ рд▓реЛрдЧ рдореБрджреНрджреЛрдВ рдкрд░ рднрд╛рдЧрддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдЕрдмреЗ рдкреНрд░рд▓реЗрдЦрди рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ? idk
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдХрдврд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рд╕реБрдкрд░ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝реА рдпреЛрдЬрдирд╛рдПрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИрдВ
https://github.com/emberjs/rfcs/issues/611
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИред рд╕рд╛рдордЧреНрд░реА рдирд┐рд░реНрдорд╛рддрд╛ "рдЧрддрд┐рд╡рд┐рдзрд┐ рддрддреНрд╡реЛрдВ" рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдПрдХ рд╕рдВрдЧрдд рдПрдореНрдмрд░ рдШрдЯрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдПрдореНрдмрд░ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рджрд┐рд▓ рдХрдореЛрдмреЗрд╢ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
// example model definition
export default class TextElement extends Model {
_componentName = 'text-element';
}
{{#each (sort-by "position" @activityElements) as |activityElement|}}
{{component (get activityElement "_componentName")}}
рдЙрдкрд░реЛрдХреНрдд рдореЗрд░реЗ рдкрдврд╝рдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ (component dynamicString)
рдкрд░рд┐рджреГрд╢реНрдп рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?
рдЙрдкрд░реЛрдХреНрдд рдореЗрд░реЗ рдкрдврд╝рдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ (рдШрдЯрдХ рдбрд╛рдпрдирд╛рдорд┐рдХрд╕реНрдЯреНрд░рд┐рдВрдЧ) рдкрд░рд┐рджреГрд╢реНрдп рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?
@activityElements
рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛рдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рдпрд╣ рдПрдХ рдПрдореНрдмрд░ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдШрдЯрдХ рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд╣рдордиреЗ рдбрд╛рдпрдиреЗрдорд┐рдХ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕, FYI рдореЗрдВ рднреА рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рдирд┐рд╡реЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдпрд╣рд╛рдВ рдкреВрдЫрд╛ рдерд╛: https://discuss.emberjs.com/t/the-perils-of-dynamic-component-invocation/16784ред
рддреЛ рд╣рдо рдХрд░рддреЗ рд╣реИред рд╣рдо рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдРрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╡реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмреИрдарддреЗ рд╣реИрдВ (рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдмрдирд╛рддрд╛ рд╣реИ), рдмреИрдХрдПрдВрдб рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб рдкрд░ рдСрди-рдбрд┐рдорд╛рдВрдб рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдбрд╛рдпрдиреЗрдорд┐рдХ component
рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░ рдкрд╛рдирд╛ рдЙрд╕реА рддрд░рд╣ рд╣реИ рдЬреИрд╕реЗ рдХрд┐рд╕реА рдПрд░реЗ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рди рд╣реЛрдирд╛ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рд╣реИред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЛрдб рдмрдВрдЯрд╡рд╛рд░реЗ / рдкреЗрдбрд╝ рдХреЗ рд╣рд┐рд▓рдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рдЕрдЧрд░ рдореЗрд░рд╛ рдРрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╣ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЙрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡реИрдз рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
{{#let (hash
Foo=(import 'path/to/foo')
Etc=...
) as |validComponents|
}}
{{component (get validComponents @someDynamicValue)}}
{{/let}}
?
рдЬреИрд╕реЗ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реНрдг рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдореЗрдВ рднреА рдХреНрдпрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред "рдУрд╣, рдпрд╣ рдорд╛рди рд╡реИрдз рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдирд╣реАрдВ рдерд╛"
рдХреНрдпрд╛ рдЙрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡реИрдз рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ред
@NullVoxPopuli @jherdman рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛!
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓реЛрдЧреЛрдВ рдХреЛ (component dynamicString)
рдмрдЬрд╛рдп рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╣ рд╕реЛрдЪрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП import
рдпрд╛ (component "staticString")
рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
(component "staticString")
(get componentMap dynamicString)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛редрдЕрдм рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ: (get components dynamicString)
рдХрд┐рд╕реА рднреА (component dynamicString)
рд╕реЗ рдмреЗрд╣рддрд░ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ componentMap
рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╣реАрдВ рдФрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рдФрд░ рдирд┐рдпрдо рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред
рддреЛ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдПрдХ рдШрдЯрдХ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ <InputField @type="text" />
рдпрд╛ <InputField @type="checkbox" />
(рдЬреИрд╕реЗ <input>
HTML рдореЗрдВ) рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
input-field
рд▓рд┐рдП рдЖрдкрдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
{{#let (hash text=(component "inputs/text-field") checkbox=(component "inputs/checkbox")) as |components|}}
{{component (get components @type)}}
{{/let}}
рдЬрдм рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХрдврд╝рд╛рдИ рдпрд╣ рджреЗрдЦ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдВрдбрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдШрдЯрдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдерд╛:
{{component (concat "inputs/" <strong i="33">@type</strong> "-field")}}
(рд╣рд╛рдВ, рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрдо рд╣реИрдВ)
рдлрд┐рд░ рдПрдореНрдмреНрд░рд╛рдпрдбрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдмрдВрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдФрд░ рднреА рдмрджрддрд░ рд╣реИ рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рдо (рдЬреЛ рднреА рдмрд╣реБрдд рдЖрдо рд╣реИ) рдХрд┐рдпрд╛ рдерд╛:
export default class extends Component {
get innerComponent() {
return `inputs/${this.args.type}-field`;
}
}
рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде:
{{component this.innerComponent}}
рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рдореЛрдбрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдврд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдШрдЯрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдореИрдВ рджреЛ рдЕрдиреНрдп рдЗрди-рдлрд╝реНрд▓рд╛рдЗрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рд╡рд░реНрддрдиреА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдпрджрд┐ рд╣рдо рдЙрди рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ:
---
import TextField from "./text-field";
import Checkbox from "./checkbox";
---
{{#let (hash text=TextField checkbox=Checkbox) as |components|}}
{{component (get components @type)}}
{{/let}}
рдЗрд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдЪреНрдЫреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬрд┐рд╕реЗ рдПрдореНрдмреНрд░реЛрдЗрдбрд░реНрд╕ рдХреЛ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбрд▓ рдХреЛ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
RFC # 481 рдХреЗ рдмрд╛рдж рд╕реЗ, рдПрдХ рдШрдЯрдХ рд╡рд░реНрдЧ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрддреНрдо-рдирд┐рд╣рд┐рдд рдЗрдХрд╛рдИ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдПрдХ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд▓рд┐рдорд░ рд╡реАрдПрдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдиреЛрдЯ: рдпрд╣ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ рдЬреЛ
@ember/component
рдпрд╛@glimmer/component
рд╕реЗ рд╡рд╛рд░рд┐рд╕ рд╣реИрдВред рдЖрд░рдПрдлрд╕реА 481 рдХреЗ рдмрд╛рдж рд╕реЗ, рдПрдореНрдмрд░ рдХреА "рдШрдЯрдХ" рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ "рдПрдХ рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдШрдЯрдХ рдкреНрд░рдмрдВрдзрдХ рд╕реЗ рдЬреБрдбрд╝реА рд╣реИ", рдЬрд┐рд╕рдореЗрдВ рд╣реБрдХ-рдШрдЯрдХреЛрдВ рдЬреИрд╕реЗ рдХрд╕реНрдЯрдо рдШрдЯрдХ рд╢рд╛рдорд┐рд▓
рдЪреВрдВрдХрд┐ RFC # 432 (рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рд╣рд╛рдпрдХ рдФрд░ рд╕рдВрд╢реЛрдзрдХ) рдФрд░ RFC # 496 (рд╣реИрдВрдбрд▓рдмрд╛рд░ рд╕рдЦреНрдд рдореЛрдб), рдПрдореНрдмрд░ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ: рд╕рд╣рд╛рдпрдХ, рдШрдЯрдХ рдпрд╛ рд╕рдВрд╢реЛрдзрдХ рдпреБрдХреНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд╣рд╛рдпрдХ, рдШрдЯрдХ рдпрд╛ рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрд╡реАрдХреГрдд RFC рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдпрд╣ рд╣реИ рдХрд┐ <SomeComponentClass />
(рдпрд╛ <this.componentClass>
рдЬрд╣рд╛рдБ this.componentClass
рдПрдХ рдШрдЯрдХ рд╡рд░реНрдЧ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрддрд╛ рд╣реИ) "рдмрд╕ рдХрд╛рдо рдХрд░реЗрдЧрд╛"ред рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдХреА рдпреЛрдЬрдирд╛ рднреА рд╣реИред
рдХрд╣рд╛ рдХрд┐, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ RFC рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдПрдЪрдмреАрдПрд╕ рдореЗрдВ рдорд╛рдиреНрдп рдШрдЯрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдпреБрдЧрд▓ рдХреЛ рдмрд╛рд╣рд░ рдмреБрд▓рд╛рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ:
рдпрд╣ рдЬреЗрдПрд╕ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╡реИрд╕реЗ рднреА) рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
{{#let (lookup-directory "components/inputs/") as |components|}}
{{/let}}
рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдХреЛ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд╛рде рд╕рдореВрд╣реАрдХреГрдд рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдкреНрд░рдХрд╛рд░ рдЬреНрдЮрд╛рдд рд╣реЛред
рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдХреЛрдВ рдХреЛ рдЗрд╕, feel рдХреЛ рд▓реЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореБрджреНрджреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдХреЛрдВ рдХреЛ рдЗрд╕, feel рдХреЛ рд▓реЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореБрджреНрджреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдФрд░ рдЖрд░рдПрдлрд╕реА рд░реЗрдкреЛ рдореЗрдВ рд╢реАрдШреНрд░ рд╣реА рдПрдХ рдХреЛ рдЦреЛрд▓реЗрдВрдЧреЗ, рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рд▓рд┐рдВрдХ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВрдЧреЗред
@mehulkar @wycats @jherdman рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрджреГрд╢реНрдп рдШрдЯрдХреЛрдВ рдХреА рдЕрдкрдиреА рд╕реВрдЪреА рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ? рдПрдХ рд╕рд╣рд╛рдпрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░ рд╢рд╛рдорд┐рд▓ рд╣реИред
import Component1 from './dynamic/component-1';
import Component2 from './dynamic/component-2';
import Component3 from './dynamic/component-3';
export default class extends Component {
get innerComponent() {
switch(this.args.type) {
case 'one':
return Component1;
case 'two':
return Component2;
case 'three':
return Component3;
default:
// handle invalid type
}
}
}
рддрдм рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: {{#let (component this.innerComponent) as |DynamicComponent|}}
рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХрд╛ред
рдореИрдВ рдмрд╣реБрдд рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдХрд┐ рдЖрд╕рд╛рди рдЦреЛрдЬ / рд░реАрдб / рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рд╣реЛ, рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрддрд╛ рд▓рдЧ рд╕рдХреЗ рдХрд┐ рдЗрди рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░?
@ рдЙрддреНрдХреГрд╖реНрдЯ рд╣рд╛рдБ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдПрдЪрдмреАрдПрд╕ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ-рдХреЗрд╡рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
@ рд╕рдорд╕рд╛рдордпрд┐рдХ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреЛ рдореИрдВрдиреЗ рдирд┐рдХрдЯ-рдЕрд╡рдзрд┐ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг (рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрдпрд╛рдд рд╕реЗ рдкрд╣рд▓реЗ) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдШрдЯрдХ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЗрдирд╡реЛрдХреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рд╣реЛрдЧреА, рдЬреЛ рдХрд┐ рдореИрдВ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдЪрд▓реЛ рдЗрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ!
рдЖрд╣, рдХрд┐ рдХреЗрд╡рд▓ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЧрд▓рдд рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ :)ред рдореБрдЭреЗ рднреА рдХреЗрд╡рд▓ рдШрдЯрдХреЛрдВ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкрд╕рдВрдж рд╣реИ:
---
import TextField from "./text-field";
import Checkbox from "./checkbox";
---
{{#let (hash text=TextField checkbox=Checkbox) as |components|}}
{{component (get components @type)}}
{{/let}}
рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рд╢рд╛рдпрдж рдпрд╣ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдЬреЗрдПрд╕ рд╕рдорд░реНрдерд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдЯреАрдо рдХреЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@NullVoxPopuli @jherdman рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛!
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓реЛрдЧреЛрдВ рдХреЛ
(component dynamicString)
рдмрдЬрд╛рдп рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╣ рд╕реЛрдЪрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдПimport
рдпрд╛(component "staticString")
рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ редрд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
(component "staticString")
(get componentMap dynamicString)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛редрдЕрдм рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ:
(get components dynamicString)
рдХрд┐рд╕реА рднреА(component dynamicString)
рд╕реЗ рдмреЗрд╣рддрд░ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐componentMap
рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╣реАрдВ рдФрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рдФрд░ рдирд┐рдпрдо рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВредрддреЛ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рдПрдХ рдШрдЯрдХ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ
<InputField @type="text" />
рдпрд╛<InputField @type="checkbox" />
(рдЬреИрд╕реЗ<input>
HTML рдореЗрдВ) рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредinput-field
рд▓рд┐рдП рдЖрдкрдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:рдЬрдм рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХрдврд╝рд╛рдИ рдпрд╣ рджреЗрдЦ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдВрдбрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдШрдЯрдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдерд╛:
(рд╣рд╛рдВ, рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрдо рд╣реИрдВ)
рдлрд┐рд░ рдПрдореНрдмреНрд░рд╛рдпрдбрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдмрдВрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдФрд░ рднреА рдмрджрддрд░ рд╣реИ рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рдо (рдЬреЛ рднреА рдмрд╣реБрдд рдЖрдо рд╣реИ) рдХрд┐рдпрд╛ рдерд╛:
рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде:
рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рдореЛрдбрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдврд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдШрдЯрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред