рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓реЗрдЦрдХ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреЛрдгреАрдп 8 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо NgConf рдФрд░ Google I / O 2019 рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдЙрдард╛рдП рдЧрдП рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдЧрд░реНрдо рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХреЛрдгреАрдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИред рдЗрди рдШрдЯрдирд╛рдУрдВ рд╕реЗ, рд╣рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реЛрдВрдЧреЗ рдХрд┐ рдЖрдк рдХреЛрдгреАрдп 8 рд╕реЗ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЦреНрдп рдмрд┐рдВрджреБ
рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдм рдЖрдк рдХреЛрдгреАрдп you рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдЙрдиреНрд╣реАрдВ рднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ NgConf 2019 рдХреЗ рдмрд╛рдж рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рдерд╛ред рдЗрдЧреЛрд░ рдорд┐рдирд╛рд░ рдХреА
рд░рд┐рдкреЛрд░реНрдЯ рдиреЗ рдХрдИ рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЛ рдЫреБрдЖ рд╣реИ - рдФрдЬрд╛рд░реЛрдВ рд╕реЗ рд▓реЗрдХрд░ рдЕрдВрддрд░ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдХрдИ рдмреЗрд╣рддрд░реАрди рдЕрджреНрднреБрдд рдЪреАрдЬреЛрдВ рддрдХред
рдЖрдЗрдП рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╕рдм рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рд╣рдо рдирдП рдЕрд╡рд╕рд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореМрдЬреВрджрд╛ рддрдВрддреНрд░ рдХреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреА рдпрд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдХрд┐ рдирдпрд╛ рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред
рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ
тЦН рд╡рд┐рднреЗрджрдХ рд▓реЛрдбрд┐рдВрдЧ
рдЕрдВрддрд░ рд▓реЛрдбрд┐рдВрдЧ рддрдХрдиреАрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдПрдВрдЧреБрд▓рд░, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдкреЙрд▓реАрдлрд┐рд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдмрдВрдбрд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣
browserlist
рдлрд╝рд╛рдЗрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред
рдКрдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рд╣реИ ( рд╕реНрд░реЛрдд )рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдмрдВрдбрд▓реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдВрддрд░ рд▓реЛрдбрд┐рдВрдЧ ( рд╕реНрд░реЛрдд ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдЪрддрдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдХреЛрдгреАрдп рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ
рдирд╛рдорд╛рдВрдХрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
<body> <pp-root></pp-root> <script type="text/javascript" src="runtime.js"></script> <script type="text/javascript" src="es2015-polyfills.js" nomodule></script> <script type="text/javascript" src="polyfills.js"></script> <script type="text/javascript" src="styles.js"></script> <script type="text/javascript" src="vendor.js"></script> <script type="text/javascript" src="main.js"></script> </body>
nomodule
рд╡рд┐рд╢реЗрд╖рддрд╛, рдмреВрд▓рд┐рдпрди, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ ES6 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдРрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд░ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрдиреНрд╣реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
тЦНSVG рдЯреЗрдореНрдкреНрд▓реЗрдЯ
рдЕрдм SVG рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рддрдХ, рдПрдореНрдмреЗрдбреЗрдб рдпрд╛ рдмрд╛рд╣рд░реА HTML рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
@Component({ selector: "app-icon", templateUrl: "./icon.component.svg", styleUrls: ["./icon.component.css"] }) export class AppComponent {...}
рдореИрдВ рдЖрдЗрд╡реА рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдкреНрд░рддрд┐рдкрд╛рджрди рдЗрдВрдЬрди
рдЖрдЗрд╡реА рдЗрдВрдЬрди рдЕрднреА рднреА рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЪрд░рдг рдореЗрдВ рд╣реИред рдХреЛрдгреАрдп 8 рдХреА рд░рд┐рд╣рд╛рдИ рдХреЗ рдмрд╛рдж, рдЖрдк рдПрдХ рдирдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рддреЗ рд╕рдордп
--enable-ivy
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЖрдЗрд╡реА рдЕрднреА рддрдХ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдЕрднреА рднреА "рдСрдкреНрдЯ-рдЗрди рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ), рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЗрдЧреЛрд░ рдореАрдирд╛рд░ рдиреЗ NgConf 2019 рдореЗрдВ рдХрд╣рд╛ рдерд╛, рдирдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рд╡реНрдпреВ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ Ivy рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
angularCompilerOptions
рдореЗрдВ
true
angularCompilerOptions
рдореЗрдВ
angularCompilerOptions
enableIvy option
рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
"angularCompilerOptions": {"enableIvy": true}
рдЖрдк рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ Ivy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
$ ng new my-app --enable-ivy
рдЖрдЗрд╡реА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рддреАрди рдХреЛрдгреАрдп 9 рдореЗрдВ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ:
- рддреЗрдЬреА рд╕реЗ рд╕рдВрдХрд▓рдиред
- рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪред
- рдмрдВрдбрд▓реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдирд╛ред рдЕрдм , рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рддреЛ Google I / O 19 рдХреЗ рд╕рд╛рде 4.3 Kb рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рдиред
- рдкрд┐рдЫрдбрд╝реА рдЕрдиреБрдХреВрд▓рддрд╛ред
- рдФрд░ рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐, рдореЗрд░реА рддрд░рд╣, рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
тЦНрд╕реБрдкреЛрд░реНрдЯ рдмрд╛рдЬрд╝рд▓
рдмрд╛рдЬреЗрд▓ рдПрдХ рдФрд░ рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ Google рдиреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЗрдЧреЛрд░ рдорд┐рдирд╛рд░ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдмрд╛рдЬреЗрд▓ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХрдВрдкрдиреА рдХреА рдЖрдВрддрд░рд┐рдХ рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП,
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВ рдФрд░ рдкрдврд╝реЗрдВ рдХрд┐ рдХреИрд╕реЗ рдмрдЬрд╝реЗрд▓ рдХреЛ
рдХреЛрдгреАрдп рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
рд╢рд╛рдпрдж рдЖрдк рдЕрдм рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдмрд╛рдЬреЗрд▓ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░ рджреЗрдВ - рдпрд╣ рдЕрднреА рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЕрдм рд╡рд╣ "рдСрдкреНрдЯ-рдЗрди рдкреНрд░реАрд╡реНрдпреВ" рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред рдореБрдЭреЗ Google рдкрд░ рдПрдВрдЧреБрд▓рд░ рдЯреВрд▓ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрд▓реЗрдХреНрд╕ рдИрдЧрд▓ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рддреЗ рд╣реИрдВ: тАЬрдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рднреА рдмрд╛рдЬреЗрд▓ рдкрд╛рдиреА рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢рд╛рд░реНрдХ рдереЗтАж рдЕрдм рд╣рдо рдкрд╣рд▓реЗ рд╣реА рд╢рд╛рд░реНрдХ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╛рдиреА рдЕрднреА рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдардВрдбрд╛ред "
Bazel рдкрд░ рдЕрднреА рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 9 рдореЗрдВ
@angular/cli
рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред
рдпрд╣рд╛рдБ Bazel рд╣рдореЗрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдХреЛ рдЧрддрд┐ рджреЗрдирд╛ред рдкрд╣рд▓реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╛рдирд╛рдВрддрд░ рдмрд┐рд▓реНрдб рдмрд╣реБрдд рддреЗрдЬ рд╣реЛрддреЗ рд╣реИрдВред рдХреЛрдгреАрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Bazel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдм CI рд░реВрдЯ 7.5 рдорд┐рдирдЯ рдореЗрдВ рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рдШрдВрдЯреЗ рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдЬреЗрд▓ рд╕реЗ рдкрд╣рд▓реЗ рдерд╛ред
- рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ред рдкреВрд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ рд╣реИред
- рдмрдЬрд╝реЗрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИред
рдЖрдк рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ Bazel рд╕рдорд░реНрдерди рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
ng add @angular/bazel
рдЖрдк Bazel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
$ npm install -g @angular/bazel $ ng new my-app --collection=@angular/bazel
тЦНAPI рдмрд┐рд▓реНрдбрд░реНрд╕
рдХреЛрдгреАрдп рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЖрдкрдХреЛ рдПрдкреАрдЖрдИ рдмрд┐рд▓реНрдбрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдгреАрдп рдмрд┐рд▓реНрдбрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ:
serve
,
build
,
test
,
lint
рдФрд░
e2e
ред рдпрд╣рд╛рдБ
angular.json
рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЛрдбрд╛рдВрддрд░рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛
angular.json
рд╣реИ:
... "projects": { "app-name": { ... "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", ... }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", ... }, "test": { "builder": "@angular-devkit/build-angular:karma", ... }, "lint": { "builder": "@angular-devkit/build-angular:tslint", ... }, "e2e": { "builder": "@angular-devkit/build-angular:protractor", ... } } } }
рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдХрд▓реЗрдХреНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдкреБрд░рд╛рдиреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЧрд▓реНрдк / рдЧреНрд░рдВрдЯ рдХрдорд╛рдВрдб рдХреЗ рд╕рдорд╛рди рджреЗрдЦрддрд╛ рд╣реВрдВред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд▓реЗрдХреНрдЯрд░ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ
@angular-devkit/architect
рдкреИрдХреЗрдЬ рд╕реЗ
createBuilder()
рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
import { createBuilder } from '@angular-devkit/architect'; function customBuild(options, context) { return new Promise((resolve, reject) => {
рдХреЛрдгреАрдп рдирд┐рд░реНрдорд┐рдд рдХрд▓реЗрдХреНрдЯрд░реЛрдВ рдХреЛ
рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдпрд╣рд╛рдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдгреАрдп рдмреНрд▓реЙрдЧ рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ рд╣реИрдВред
рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
loadChildren:string
рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЖрд▓рд╕реА рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдореМрдЬреВрджрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕
loadChildren:string
рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкрд╣рд▓реЗ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:
loadChildren: './lazy/lazy.module#LazyModule';
рдХреЛрдгреАрдп 8 рдХреА рд░рд┐рд╣рд╛рдИ рдХреЗ рд╕рд╛рде - рдЗрд╕ рддрд░рд╣:
loadChildren: () => import('./lazy/lazy.module').then(m => m.LazyModule)
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЙрдирдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдСрдкрд░реЗрд╢рди рдХреЗ рдПрдХ рдирдП рдореЛрдб рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
тЦНSuport API $ рд╕реНрдерд╛рди AngularJS
AngularJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ Angular рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп рд╡рд┐рдХрд╛рд╕ рджрд▓ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк,
angular/common/upgrade
рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ
$location
рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
$location
рд╕реЗрд╡рд╛ рд╕реЗ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред- рдЯреНрд░реИрдХрд┐рдВрдЧ рдкрддрд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
- рдкрддрд╛ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬреЛ рдХрд┐ AngularJS (
hostname
, protocol
, port
, search
) рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред - MockPlatformLocation API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡рд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ред
Ebрд╡рдм рдХрд╛рдордЧрд╛рд░
рдХреЛрдгреАрдп 8 рд╡реЗрдм рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЙрдирдХреА рдорджрдж рд╕реЗ, рдЖрдк рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдХреЛрдб рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирдпрд╛ рд╡реЗрдм рд╡рд░реНрдХрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рдХреЛрдгреАрдп рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
ng g webWorker <name>
тЦНService рдХрд╛рд░реНрдпрдХрд░реНрддрд╛
рдЪреВрдВрдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдореЗрдВ рдЧрдВрднреАрд░ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ, рдХрдИ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ
SwRegistrationOptions
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдерд╛ред рдПрдХ рдФрд░ рд╕реБрдзрд╛рд░ рдПрдХ рд╣реА рдбреЛрдореЗрди рдкрд░ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдерд╛ред
рд╕реЗрд╡рд╛ рдХреЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ
Ments рдлреЙрд░реНрдо рдореЗрдВ рд╕реБрдзрд╛рд░
markAllAsTouched
рдкрджреНрдзрддрд┐ рдХреЛ
markAllAsTouched
рдЧрдпрд╛
markAllAsTouched
, рдЬреЛ рдЖрдкрдХреЛ
touched
рд░реВрдк рдореЗрдВ рдПрдХ
FormGroup
рдЕрдВрджрд░ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ
FormGroup
рдХреЗ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреА рдорд╛рдиреНрдпрддрд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
validateFormAndDisplayErrors(form: FormGroup) { Object.keys(form.controls).map((controlName) => { form.get(controlName).markAsTouched({onlySelf: true}); }); }
рдирдП Angular рдореЗрдВ, рдЖрдк
FormArray
рдХреЛ
clear
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
clear
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕рдореЗрдВ рд╕реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдирд┐рдореНрди рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП:
while (formArray.length) { formArray.removeAt(0); }
рдЕрдм рдЖрдкрдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЕрдм рдПрдХрд▓ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
formArray.clear()
ViewChild рдФрд░ ContentChild рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХреНрд╖рдг рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ
рдЗрд╕ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рддрд╛рддреНрдкрд░реНрдп
static
рдзреНрд╡рдЬ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЕрдиреБрд░реЛрдз рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдм
ViewChild
рдпрд╛
ContentChild
рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк рдЕрд╕рдВрдЧрдд рдкреНрд░рдгрд╛рд▓реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо
ngOnInit
рдЬреАрд╡рдирдЪрдХреНрд░ рдкрджреНрдзрддрд┐ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА
ngAfterContentInit
рдпрд╛
ngAfterViewInit
рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡реЗ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
static
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпреЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ
ViewChildren
рдФрд░
ViewChildren
рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдВрдмрдВрдзрд┐рдд рдЖрдЗрдЯрдо рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред
static: true
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
static: true
рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЧрддрд┐рд╢реАрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ (рдпрд╛рдиреА * рдПрдирдЬреАрдЖрдИрдПрдл) рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рд╕реНрдХреИрдореИрдЯрд┐рдХреНрд╕ рдирд┐рдпрдо рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЗрд╡реА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
тЖТ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
тЦНрд╕реБрдкреЛрд░реНрдЯ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.4.x
рдХреЛрдгреАрдп рдЕрдм рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдХреЛрдгреАрдп рдХрд╛ рд╕рд╛рддрд╡рд╛рдВ рд╕рдВрд╕реНрдХрд░рдг рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.2.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред рдЯреАрдПрд╕ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрддрдиреЗ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред рд╡реЗ рд╕рдВрднрд╡рддрдГ рдЕрдкреНрд░рд┐рдп рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЬрдиреНрдо рдирд╣реАрдВ рджреЗрдВрдЧреЗред
тЖТ рдЯреАрдПрд╕ 3.4 рдХреЗ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
Ment рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░
рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ,
ServerRendererFactory2
рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП
DomElementSchemaRegistry
рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИред рдЕрдм
DomElementSchemaRegistry
рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
B рдлрд╛рдпрд░рдмреЗрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреИрдирд╛рддреА
рдпрджрд┐ рдЖрдк рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрд░рдмреЗрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдирд╡рд╛рдЪрд╛рд░ рдХреЛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдХреЛрдгреАрдп рд╕реАрдПрд▓рдЖрдИ рдореЗрдВ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрдорд╛рдВрдб рд╣реИ:
ng run [PROJECT_NAME]:deploy
тЖТ
рдпрд╣рд╛рдБ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЙрдЯрдбреЗрдЯреЗрдб рдПрдкреАрдЖрдИ
тЦН TesBed.get рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
TesBed.get
рд╡рд┐рдзрд┐ рдореЗрдВ рджреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдереЗред рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рд░рд┐рд╕реАрд╡рд┐рдВрдЧ рдФрд░ рд░рд┐рдЯрд░реНрдирд┐рдВрдЧ рдЯрд╛рдЗрдк рд╣реЛрддрд╛ рд╣реИред рдЕрдм рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдЬреЛ
any
рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдкрджрд╛рд╡рдирдд рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреЛрдХрди (рдЬреЛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ) рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред
рдкрд╣рд▓реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛:
TestBed.configureTestingModule({ providers: [{ provide: "stringToken", useValue: new Service() }], }); let service = TestBed.get("stringToken");
рдЕрдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
const SERVICE_TOKEN = new InjectionToken<Service>("SERVICE_TOKEN"); TestBed.configureTestingModule({ providers: [{provide: SERVICE_TOKEN, useValue: new Service()}], }); let service = TestBed.get(SERVICE_TOKEN);
тЦНRemoving рдХреЛрдгреАрдп / рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ DOCUMENT
DOCUMENT
@angular/platform-browser
рдкреИрдХреЗрдЬ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛
DOCUMENT
рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреИрдХреЗрдЬ рд╕реЗ
DOCUMENT
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ
@angular/common
рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
тЦНUninstall рдХреЛрдгреАрдп / http рдкреИрдХреЗрдЬ
@angular/http
5 рдореЗрдВ
@angular/http
рдкреИрдХреЗрдЬ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди
@angular/platform-server
рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЙрдкрд▓рдмреНрдз рдерд╛ред рдЕрдм рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЛ рдкреИрдХреЗрдЬ рдХреА рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди
тЦНрдСрдЯреЛ рдХреЛрдб рдлрд┐рдХреНрд╕
рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рддреНрд░рд┐рдХреЛрдгреАрдп рдФрд░
col
HTML рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреЛрдгреАрдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред
tr
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
tr
рдпрджрд┐ рддрддреНрд╕рдо рддрддреНрд╡
tbody
,
tfoot
рдпрд╛
thead
рдЕрдВрджрд░ рдирд╣реАрдВ рдерд╛
tr
рд╕реБрдзрд╛рд░ рдХрд┐рдП рдЧрдП рдереЗред рддрддреНрд╡ рдореЗрдВ рддрддреНрд╡ рдХреЗ рд╕реНрд╡рдд: рд╕реНрдерд╛рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╢рд╛рдорд┐рд▓ рдереЗред
col
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
col
рд╕реБрдзрд╛рд░ рдХреЛ рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рддрддреНрд╡
colgroup
рдЯреИрдЧ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд╣реИред
рдХреЛрдгреАрдп рдЕрдм рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕реБрдзрд╛рд░ рдХреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рд╕рдВрдШрд░реНрд╖реЛрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХреЛрдб рдХреА рд╢реБрджреНрдзрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред
тЖТ рдЗрд╕ рдкрд░ рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
Ame рдирд╛рдо рдмрджрд▓реЗрдВ рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА
рдХреЛрдгреАрдп рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХреЛрдгреАрдп рдЕрд╡рдпрд╡ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкреИрдХреЗрдЬ рдХреЗ рдирд╛рдо рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо
рдПрдВрдЧреБрд▓рд░ 8 рдмрд╣реБрдд рдЬрд▓реНрдж рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдЧреАред рдХреЛрдгреАрдп рд╡рд┐рдХрд╛рд╕ рджрд▓ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрдирдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдХрд╛рдо рдФрд░ рдЬреАрд╡рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдПрдВрдЧреБрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЗрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЖрд╕рд╛рди рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдпрд░ рдлреНрд░рд╛рдВрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдХреЛрдгреАрдп рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп ( рд╕реНрд░реЛрдд )рдирддреАрдЬрддрди, рд╣рдо рдЖрд╢рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдВрдЧреБрд▓рд░ 7 рд╕реЗ рдПрдВрдЧреБрд▓рд░ 8 рддрдХ рд╕рдВрдХреНрд░рдордг рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЧрдВрднреАрд░ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдпрд╣рд╛рдВ рдЖрдк рдХреЛрдгреАрдп рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЙрдиреНрдирдпрди рдкрд░ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдЗрдЧреЛрд░ рдорд┐рдирд╛рд░
рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдордИ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХреЛрдгреАрдп 8.0.0 рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдЖ рд╕рдХрддрд╛ рд╣реИред
24 рдордИ рдХреЛ
рдХреЛрдгреАрдп 8.0.0-rc.5 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдПрдВрдЧреБрд▓рд░ рдХрд╛ рднрд╡рд┐рд╖реНрдп рдХрд╛рдлреА рдЖрд╢рд╛рд╡рд╛рджреА рджрд┐рдЦрддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╣рдорд╛рд░реЗ рдКрдкрд░ рд╣реИред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдХреЛрдгреАрдп 8 рд╕реЗ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ?
