
рдХреЛрдИ рднреА рднреМрддрд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдХрдо рд╕реЗ рдХрдо рд╕рдВрднрд╛рд╡рд┐рдд рдКрд░реНрдЬрд╛ рдХреЗ рд╕рд╛рде рд░рд╛рдЬреНрдп рдореЗрдВ рдЬрд╛рддреА рд╣реИред рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреЛрдгреАрдп.js рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рдХреИрд╕реЗ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдЙрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛ рдЕрдм рдЪрд▓рди рдореЗрдВ рд╣реИрдВред рдЕрдзрд┐рдХрддрд░, рдореИрдВ рдЕрдкрдиреЗ
рдХреЛрдгреАрдп-рдмрд╛рдпрд▓рд░рдкреНрд▓реЗрдЯ рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреАрдд рд░реВрдк рд╕реЗ рдкреАрдЖрд░ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдПрдХ рд╕реНрдиреИрдХ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реВрдВрдЧрд╛ред
рдкреНрд░реЗрд░рдгрд╛
рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░реЗрдВ, рдПрдХ рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдмрдирд╛рдПрдВ, рдФрд░ рдПрдХ рд╕рд╛рде рд▓рд╛рдПрдВ рдЬреЛ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ
рддреБрд░рдВрдд рдпрд╣
рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐
рдХреЛрдгреАрдп-рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдЦрд░реЛрдВрдЪ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореИрдВрдиреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рд╕рдВрднрд╡ рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛред рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдореЗрд░реЗ рдирд┐рд░реНрдгрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рд╡реЗ рд╕рднреА рд╕рдордп рдХреА рдХрд╕реМрдЯреА рдкрд░ рдЦрд░реЗ рдЙрддрд░реЗ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рд╛рдн рджрд┐рдЦрд╛рдПред
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рдШреБрд░рдШреБрд░рд╛рдирд╛
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ grunt.js рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдб рдФрд░ рд╢реИрд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЧреНрд░рдВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
Gruntfile.js рдореЗрдВ рджреЛ рдХрд╛рд░реНрдп рд╣реИрдВ:
рдЧреНрд░рдВрдЯ рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░
рдЧреНрд░рдиреНрдЯ рдмрд┐рд▓реНрдб - рдкрд╣рд▓рд╛ рдЖрдкрдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ
рдмреЛрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛,
рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЫреЛрдЯрд╛ рдХрд░рддрд╛
рд╣реИред рдЬреЗ рдПрд╕ ред
рдХреБрдВрдЬ
рдЧреАрдердм рдкрд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдмреЛрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдпрд╣рд╛рдВ рдореИрдВ
.bowerrc рдлрд╝рд╛рдЗрд▓ рдХреЛ
рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реВрдВ , рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрде рдФрд░ рдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Require.js
рдЕрднреНрдпрд╛рд╕, рдЬрдм рдПрдХ HTML рдкреГрд╖реНрда рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдХреЛрдб рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдЕрд╕рдВрдЧрддрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реВрдВред рдФрд░ рдореИрдВ рд╣рдореЗрд╢рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреЛрдб рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ
Requ.js рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд
рд╣реВрдВ рдФрд░ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рд╕рдВрднрд╡рддрдГ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рдкрд░рд┐рдЪрдп рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЬреЗрдПрд╕, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреЛ, рдореБрдЦреНрдп рдмрд╛рдд рдЬреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреЗрдПрд╕ рд╣рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдо рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдореИрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП
рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рддрд░реНрдХ рдФрд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
<link rel="stylesheet" href="app/styles/styles.css"> <link rel="stylesheet" href="app/styles/styles.min.css"> <script data-main="app/js/app" src="app/lib/requirejs/require.js"></script> <script src="app/js/app.min.js"></script>
рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрд╕реА рд╕рдордп, рд╕рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдореЙрдбреНрдпреВрд▓, рдЖрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рдФрд░ рдЙрдирдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕
рдРрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред
рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓:
require.config({ baseUrl: 'app', paths: { 'jquery': 'lib/jquery/dist/jquery', 'angular': 'lib/angular/angular', 'text': 'lib/requirejs-text/text' }, shim: { 'jquery': { exports: 'jQuery' }, 'angular': { exports: 'angular', 'deps': ['jquery'] }, 'lib/angular-route/angular-route': { 'deps': ['angular'] } }, config: { 'js/services': { apiUrl: 'http://localhost/api' } } });
рдЕрдЧрд▓рд╛, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирд╛ред
рдлрд╝рд╛рдЗрд▓реЗрдВ
/app /js app.js app.min.js controllers.js directives.js filters.js services.js /styles styles.js styles.min.js /templates someone-template.html index.html bower.json package.json .bowerrc Gruntfile.js
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдордЧреНрд░ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╕реЗрд╡рд╛рдУрдВ, рдирд┐рд░реНрджреЗрд╢реЛрдВ, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ, рдлрд┐рд▓реНрдЯрд░ рдЗрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рддрдм
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ:
var angular = require('angular'), controllers = require('js/controllers'), services = require('js/services'), directives = require('js/directives'), filters = require('js/filters'); ... angular.forEach(services, function (service, name) { $provide.factory(name, service); }); ... angular.forEach(directives, function (directive, name) { app.directive(name, directive); }); angular.forEach(filters, function (filter, name) { app.filter(name, filter); }); angular.forEach(controllers, function (controller, name) { app.controller(name, controller); });
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ, рдФрд░ рдореИрдВрдиреЗ рдЦреБрдж, рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рддрд░реНрдХ рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдХреНрд╕рд░ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдХрд╣реАрдВ
- рдХрд╣реАрдВ
рдПрдирдЬреА-рдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ рдпрд╣ рдШрд╛рддрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИ:
app.run(controllers.GlobalCtrl);
рдпрд╣реА рд╣реИ, рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдПрдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред
рд░рд┐рдХреНрдЬреЗрдХреНрд╢рдВрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬреЛрдбрд╝ рд╣реИ
рдЯреЗрдХреНрд╕реНрдЯ рдореЙрдбреНрдпреВрд▓, рдЬреЛ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рди рдХреЗрд╡рд▓ рдПрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (), рдмрд▓реНрдХрд┐ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рда рдлрд╛рдЗрд▓реЗрдВ рднреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдЪрдЯреАрдПрдордПрд▓, рдЬрд┐рд╕реЗ рддрдм рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ
рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрд┐рд▓реНрдб рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рд▓реНрдб рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
... .when('/', { controller: controllers.MainCtrl, template: require('text!templates/main.html') }); ...
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ:
$httpProvider.interceptors.push(['$q', '$error', function ($q, $error) { return { 'request': function (config) { return config; }, 'response': function (response) { return response; }, 'responseError': function (rejection) { $error('Connection error!'); return $q.reject(rejection); } } }]);
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдордзреНрдпрд╕реНрде рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХреЗрдВрджреНрд░реАрдХреГрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдореИрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛, рдЗрд╕реАрд▓рд┐рдП рдРрд╕рд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рдЕрдкрдиреЗ рдЕрднреНрдпрд╛рд╕, рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред