AngularJS - рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдореЙрдбреНрдпреВрд▓реНрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

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

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

рдореЙрдбреНрдпреВрд▓


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




рд╕рдорд╕реНрдпрд╛


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', // Structure plugins: 'base': '../bower_components/requirejs-angular-loader/src/base', 'template': '../bower_components/requirejs-angular-loader/src/template', 'controller': '../bower_components/requirejs-angular-loader/src/controller', 'service': '../bower_components/requirejs-angular-loader/src/service', 'module': '../bower_components/requirejs-angular-loader/src/module', 'config': '../bower_components/requirejs-angular-loader/src/config', 'directive': '../bower_components/requirejs-angular-loader/src/directive', 'filter': '../bower_components/requirejs-angular-loader/src/filter' }, structure: { prefix: 'modules/{module}', module: { path: '/{module}' }, template: { path: '/resources/views/{template}', }, controller: { path: '/controllers/{controller}' }, service: { path: '/src/{service}' }, config: { path: '/resources/configs/{config}' }, directive: { path: '/resources/directives/{directive}/{directive}' }, filter: { path: '/resources/filters/{filter}' } } }); 


рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд╕рднреА рдкрде рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдмреЗрд╕.рдЙрд▓ рдХреЗ рдмрд╛рдж рд╕рдВрд░рдЪрдирд╛.рдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдлрд╝реАрд▓реНрдб рдореЙрдбреНрдпреВрд▓ рд░реВрдЯ рдХрд╛ рдкрде рд╣реИред

рдЕрдм, рдпрджрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ /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') 


рдЗрд╕реА рддрд░рд╣, рдЕрдиреНрдп рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдПред

рдкрд░рд┐рдгрд╛рдо


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

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

рд╕рдВрджрд░реНрдн:


рд╣рдо рдПрдХ рдмрдбрд╝реЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╕рдорд░реНрдерд┐рдд рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛ред

Source: https://habr.com/ru/post/In216469/


All Articles