AngularJS рдореЗрдВ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдПрдВ

рджрд┐рди рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдордп!

рдЗрд╕ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ Deferred AngularJS рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЫрд╡рд┐


рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рддрдВрддреНрд░, рдпрд╛ рдмрд▓реНрдХрд┐ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдХреНрд░рд┐рд╕ рдХреЛрд╡рд▓ рдХреА рдХреНрдпреВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рдорд╛рди рдпрд╛ рдЕрдкрд╡рд╛рдж рдХреЛ рдмрд┐рдирд╛ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдП рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдПрдХ рдкреНрд░реЛрдорд┐рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рд░рд╕реАрдж рдХреЗ рд╕рдордп рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рдЗрд╕ рдХреЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддреА рд╣реИред

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

рдЗрд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
angular.module('phonecat', ['phonecatFilters', 'phonecatServices', 'phonecatDirectives']). config(['$routeProvider', function($routeProvider) { $routeProvider. when('/phones', { templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl, resolve: PhoneListCtrl.resolve}). when('/phones/:phoneId', { templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl, resolve: PhoneDetailCtrl.resolve}). otherwise({redirectTo: '/phones'}); }]); 

 function PhoneListCtrl($scope, phones) { $scope.phones = phones; $scope.orderProp = 'age'; } PhoneListCtrl.resolve = { phones: function(Phone, $q) { var deferred = $q.defer(); //     //     deferred.resolve() //    deferred.reject() Phone.query(function(successData) { deferred.resolve(successData); }, function(errorData) { deferred.reject(); }); return deferred.promise; }, delay: function($q, $defer) { var delay = $q.defer(); $defer(delay.resolve, 1000); return delay.promise; } } 


рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, $ q.defer () - рдбрд┐рдлрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рджреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ, рдорд╛рди рд▓реМрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП - deferred.resolve (рд╡реИрд▓) рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡рд┐рдлрд▓рддрд╛ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ - deferred.reject (рдХрд╛рд░рдг)ред рдХреЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдпрд╛ рд░рд┐рдЬреЗрдХреНрдЯ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЙрд▓ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред
рдЬреИрд╕реЗ рд╣реА рд╕рднреА рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ рдкрд░рд┐рдгрд╛рдо рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдмрд╛рдж рдорд╛рд░реНрдЧ рдХреА рдШрдЯрдирд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles