|
61 | 61 | ];
|
62 | 62 | if (request)
|
63 | 63 | {
|
64 |
| - for(var key in request) |
65 |
| - { |
66 |
| - if (request.hasOwnProperty(key)) |
67 |
| - { |
68 |
| - (validKeys.indexOf(key) === -1) && (delete request[key]); |
69 |
| - } |
| 64 | + for(var key in request) { |
| 65 | + if (request.hasOwnProperty(key)) { |
| 66 | + (validKeys.indexOf(key) === -1) && (delete request[key]); |
70 | 67 | }
|
| 68 | + } |
71 | 69 | }
|
72 | 70 |
|
73 | 71 | if(request.waypoints) {
|
74 |
| - // Check fo valid values |
75 |
| - if(request.waypoints == "[]" || request.waypoints === "") { |
| 72 | + // Check for acceptable values |
| 73 | + if(!Array.isArray(request.waypoints)) { |
76 | 74 | delete request.waypoints;
|
77 | 75 | }
|
78 | 76 | }
|
79 | 77 |
|
80 | 78 | var showDirections = function(request) {
|
81 | 79 | if (requestTimeout && request) {
|
82 |
| - if (!routeRequest) |
83 |
| - { |
| 80 | + if (!routeRequest) { |
84 | 81 | routeRequest = request;
|
85 |
| - } |
86 |
| - else |
87 |
| - { |
88 |
| - for (var attr in request) |
89 |
| - { |
90 |
| - if (request.hasOwnProperty(attr)) |
91 |
| - { |
92 |
| - routeRequest[attr] = request[attr]; |
| 82 | + } else { |
| 83 | + for (var attr in request) { |
| 84 | + if (request.hasOwnProperty(attr)) { |
| 85 | + routeRequest[attr] = request[attr]; |
93 | 86 | }
|
94 | 87 | }
|
95 | 88 | }
|
96 |
| - } |
97 |
| - else |
98 |
| - { |
| 89 | + } else { |
99 | 90 | requestTimeout = $timeout(function() {
|
100 |
| - if (!routeRequest) |
101 |
| - { |
| 91 | + if (!routeRequest) { |
102 | 92 | routeRequest = request;
|
103 | 93 | }
|
104 | 94 | directionsService.route(routeRequest, function(response, status) {
|
105 | 95 | if (status == google.maps.DirectionsStatus.OK) {
|
106 | 96 | renderer.setDirections(response);
|
| 97 | + // Unset request for the next call |
| 98 | + routeRequest = undefined; |
107 | 99 | }
|
108 | 100 | });
|
| 101 | + $timeout.cancel(requestTimeout); |
| 102 | + // Unset expired timeout for the next call |
109 | 103 | requestTimeout = undefined;
|
110 | 104 | }, routeRenderDelay);
|
111 | 105 | }
|
|
0 commit comments