|
68 | 68 | /* избегнувајте */
|
69 | 69 | angular
|
70 | 70 | .module('app', ['ngRoute'])
|
71 |
| - .controller('someController' , someController) |
72 |
| - .factory('someFactory' , someFactory); |
| 71 | + .controller('someController', someController) |
| 72 | + .factory('someFactory', someFactory); |
73 | 73 |
|
74 | 74 | function SomeController() { }
|
75 | 75 |
|
|
92 | 92 | // someController.js
|
93 | 93 | angular
|
94 | 94 | .module('app')
|
95 |
| - .controller('SomeController' , SomeController); |
| 95 | + .controller('SomeController', SomeController); |
96 | 96 |
|
97 | 97 | function SomeController() { }
|
98 | 98 | ```
|
|
103 | 103 | // someFactory.js
|
104 | 104 | angular
|
105 | 105 | .module('app')
|
106 |
| - .factory('someFactory' , someFactory); |
| 106 | + .factory('someFactory', someFactory); |
107 | 107 |
|
108 | 108 | function someFactory() { }
|
109 | 109 | ```
|
|
221 | 221 | ```javascript
|
222 | 222 | /* избегнувајте */
|
223 | 223 | var app = angular.module('app');
|
224 |
| - app.controller('SomeController' , SomeController); |
| 224 | + app.controller('SomeController', SomeController); |
225 | 225 |
|
226 | 226 | function SomeController() { }
|
227 | 227 | ```
|
|
230 | 230 | /* препорачано */
|
231 | 231 | angular
|
232 | 232 | .module('app')
|
233 |
| - .controller('SomeController' , SomeController); |
| 233 | + .controller('SomeController', SomeController); |
234 | 234 |
|
235 | 235 | function SomeController() { }
|
236 | 236 | ```
|
|
533 | 533 | ```
|
534 | 534 |
|
535 | 535 | ### Одлагање Логика во Контролерот
|
536 |
| -###### [Style [Y035](#style-Y036)] |
| 536 | +###### [Style [Y035](#style-Y035)] |
537 | 537 | - Одлагајте логика на во контролерот со делегирање до сервиси и фабрики.
|
538 | 538 |
|
539 | 539 | *Зошто?*: Логиката може да биде повторно искористена кога е во сервис, од повеќе контролери и изложена преку функција.
|
|
544 | 544 |
|
545 | 545 | ```javascript
|
546 | 546 | /* избегнувајте */
|
547 |
| - function Order($http, $q) { |
| 547 | + function Order($http, $q, config, userInfo) { |
548 | 548 | var vm = this;
|
549 | 549 | vm.checkCredit = checkCredit;
|
| 550 | + vm.isCreditOk; |
550 | 551 | vm.total = 0;
|
551 | 552 |
|
552 |
| - function checkCredit() { |
553 |
| - var orderTotal = vm.total; |
554 |
| - return $http.get('api/creditcheck').then(function(data) { |
555 |
| - var remaining = data.remaining; |
556 |
| - return $q.when(!!(remaining > orderTotal)); |
557 |
| - }); |
558 |
| - }; |
| 553 | + function checkCredit() { |
| 554 | + var settings = {}; |
| 555 | + // Земете го URL-то на сервисот за кредит од config датотеката |
| 556 | + // Поставете ги потребните заглавија |
| 557 | + // Спремете го потребното URL барање или потребниот податочен објект за побарување на податоците |
| 558 | + // Додадете инфо за идентификација на корисникот за сервисот да добие точниот лимит на кредитот за овој корисник |
| 559 | + // Употребете JSONP за овој пребарувач доколку не подржува CORS |
| 560 | + return $http.get(settings) |
| 561 | + .then(function(data) { |
| 562 | + // Отпакувајте го JSON податокот во одговорот |
| 563 | + // за да го најдете maxRemainingAmount |
| 564 | + vm.isCreditOk = vm.total <= maxRemainingAmount |
| 565 | + }) |
| 566 | + .catch(function(error) { |
| 567 | + // Интерпретирајте ја грешката |
| 568 | + // Спремете се со истекување на време? пробување пак? друг сервис? |
| 569 | + // Повторно одбиете за корисникот да ја забележи соодветната порака |
| 570 | + }); |
| 571 | + }; |
559 | 572 | }
|
560 | 573 | ```
|
561 | 574 |
|
|
564 | 577 | function Order(creditService) {
|
565 | 578 | var vm = this;
|
566 | 579 | vm.checkCredit = checkCredit;
|
| 580 | + vm.isCreditOk; |
567 | 581 | vm.total = 0;
|
568 | 582 |
|
569 | 583 | function checkCredit() {
|
570 |
| - return creditService.check(); |
| 584 | + return creditService.isOrderTotalOk(vm.total) |
| 585 | + .then(function(isOk) { vm.isCreditOk = isOk; }) |
| 586 | + .catch(showServiceError); |
| 587 | + }; |
571 | 588 | };
|
572 | 589 | }
|
573 | 590 | ```
|
|
2167 | 2184 | //TODO
|
2168 | 2185 | });
|
2169 | 2186 |
|
2170 |
| - it('should have 10 Avengers', function() {} |
| 2187 | + it('should have 10 Avengers', function() { |
2171 | 2188 | //TODO (mock data?)
|
2172 | 2189 | });
|
2173 | 2190 |
|
2174 |
| - it('should return Avengers via XHR', function() {} |
| 2191 | + it('should return Avengers via XHR', function() { |
2175 | 2192 | //TODO ($httpBackend?)
|
2176 | 2193 | });
|
2177 | 2194 |
|
|
2422 | 2439 | ###### [Style [Y250](#style-Y250)]
|
2423 | 2440 | - AngularJS кратки кодови кои ги следат овие водичи и стилови на код.
|
2424 | 2441 |
|
2425 |
| - - Симнете ги [Sublime Angular кратки кодови](assets/sublime-angular-snippets.zip) |
| 2442 | + - Симнете ги [Sublime Angular кратки кодови](assets/sublime-angular-snippets.zip?raw=true) |
2426 | 2443 | - Поставете ги во вашата Packages папка
|
2427 | 2444 | - Рестартирајте го Sublime
|
2428 | 2445 | - Во JavaScript датотека напишете ја следната команда и потоа кликнете на `TAB`
|
|
2446 | 2463 | ###### [Style [Y252](#style-Y252)]
|
2447 | 2464 | - AngularJS кратки кодови и датотечни шаблони кои ги следат овие стилови и водичи на код. Можете да ги внесете во вашите WebStorm подесувања:
|
2448 | 2465 |
|
2449 |
| - - Симнете ги [WebStorm AngularJS датотечни шаблони и кратки кодови](assets/webstorm-angular-file-template.settings.jar) |
| 2466 | + - Симнете ги [WebStorm AngularJS датотечни шаблони и кратки кодови](assets/webstorm-angular-file-template.settings.jar?raw=true) |
2450 | 2467 | - Отворете го WebStorm и одберете го `File` менито
|
2451 | 2468 | - Одберете го `Import Settings`
|
2452 | 2469 | - Одберете ја датотеката и кликнете `OK`
|
|
0 commit comments