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

рд╕рдорд╕реНрдпрд╛
RequrieJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИрдВ:
require('modules/foo/controller/foo-controller.js'); require('modules/foo/service/foo-service.js'); require('modules/foo/directive/foo-controller.js'); require('text!modules/foo/templates/foo.html'); require('modules/bar/directive/bar-controller.js');
рд╕реНрдкрд╖реНрдЯ рдиреБрдХрд╕рд╛рди рд╣реИрдВ:
- рдХреЛрдб рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдмрд╣реБрдд рдирд┐рд░реНрднрд░ рд╣реИ;
- рдХреЛрдб рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдореЛрдВ рдкрд░ рдмрд╣реБрдд рдирд┐рд░реНрднрд░ рд╣реИ;
- рдмрд╣реБрдд рдХреБрдЫ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдирд┐рд░реНрдгрдп
рдореЙрдбреНрдпреВрд▓ рдШрдЯрдХ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦреЗ рдЧрдП рдереЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрд╡реЗрджрди рд╕рдВрд░рдЪрдирд╛ рд╣реИ (рд╡реИрд╕реЗ, рд╕рд┐рдореНрдлрдиреА 2 рдореЗрдВ рдмрдВрдбрд▓реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ):
рдПрдкреНрд▓рд┐рдХреЗрд╢рди
| -рдореЙрдбреНрдпреВрд▓
| | -рдореЗрдиреВ
| | | -рдХрдВрдЯреНрд░реЛрд▓рд░
| | | | -рдореЗрдиреВ-рдирд┐рдпрдВрддреНрд░рдХред рдЬреЗрдПрд╕
| | | -рдореЗрдиреВ.рдЬреЗрдПрд╕
| |
| | -рдпреБрдЬрд░
| | -рдирд┐рдпрдВрддреНрд░рдХ
| | | -рдкреНрд░реЛрдлрд╛рдЗрд▓.рдЬреЗрдПрд╕
| | -рд╕реВрддреНрд░
| | |
| | | | -рдореИрдВ.рдЬрдЬ
| | |
| | -рдЯреИрдореНрдкрд▓реЗрдЯреНрд╕
| | | | -рдпреВрдЬрд╝рд░-рдкреНрд░реЛрдлрд╛рдЗрд▓ред html
| | |
| | | -рдпреВрдЬрд╝рд░-рдореЗрдиреВ
| | | -рд╕реБрдВрджрд░-рдореАрдиреВред рдЬреЗрдПрд╕
| | | -рд╕реБрдВрджрд░-рдореЗрдиреВред html
| | -src
| | | -рдкреНрд░реЛрд╕реЗрд╕рд░
| | | | -рдкреНрд░реЛрдлрд╛рдЗрд▓-рд╕реВрдЪрдирд╛ред js
| | | -рд╕рдХреНрд░рд┐рдп
| | | -рдЧрд░реНрд╕реНрдЯ.рдЬреЗрдПрд╕
| | -рд╕реБрдЕрд░ред рдЬреЗрдПрд╕
|
|
| -рдмреВрдЯ.рдЬреЗрдПрд╕
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░
рдореЗрдиреВ ред рдлрд╝рд╛рдЗрд▓реЗрдВ
/app/modules/menu/menu.js рдФрд░
/app/modules/user/user.js рдПрдВрдЧреБрд▓рд░JS рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ
рдЕрдм рдЖрдкрдХреЛ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
requirejs.config({ baseUrl: '/application', paths: { 'text': '../bower_components/requirejs-text/text',
рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд╕рднреА рдкрде рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдмреЗрд╕.рдЙрд▓ рдХреЗ рдмрд╛рдж
рд╕рдВрд░рдЪрдирд╛.рдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдлрд╝реАрд▓реНрдб рдореЙрдбреНрдпреВрд▓ рд░реВрдЯ рдХрд╛ рдкрде рд╣реИред
рдЕрдм, рдпрджрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓
/app/modules/user/user.js :
рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
/app/modules/user/user.js :
1.
aapp.js :
require('module!user')
2.
aapp /
modules /
user /
controllers /
profile.js :
require('module!@')
рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ - рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, '@' рд╡рд░реНрдг рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╣реИ - рддреЛ рдЖрдкрдХреЛ рдХреЛрдб рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдЕрдм, рдпрджрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓
/app/modules/user/controllers/profile.js
рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
1.
aapp.js :
require('controller!user:profile')
рдмреГрд╣рджрд╛рдиреНрддреНрд░ рд╕реЗ рдкрд╣рд▓реЗ - рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо, рдмреГрд╣рджрд╛рдиреНрддреНрд░ рдХреЗ рдмрд╛рдж - рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдирд╛рдоред
2
.: aapp /
modules /
user /
user.js :
require('controller!profile')
рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ - рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдПрдХ рд╕реНрддрд░ рдХрдо рд╣реИ, рддреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:
require('controller!additional/path/to/profile')
рдЗрд╕реА рддрд░рд╣, рдЕрдиреНрдп рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдПред
рдкрд░рд┐рдгрд╛рдо
рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреЛрдб рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдиреНрдпреВрдирддрдо рдХреЛрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╣реА рд▓рдЪреАрд▓реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд░рдЪрдирд╛ рдмрди рдЧрдпрд╛, рднрд▓реЗ рд╣реА рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдШрдЯрдХ рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝реЗ, рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдмрджрд▓рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдФрд░ рдХреЛрдб рднреА рдХрдо рд╣реИред
рд╕рд╛рде рд╣реА, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА / рдмрд┐рд▓реНрдб рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдЧреНрд░рдВрдЯрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдХрдЯреНрдареЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред
рд╕рдВрджрд░реНрдн:
рд╣рдо рдПрдХ рдмрдбрд╝реЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╕рдорд░реНрдерд┐рдд рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛ред