Skip to content

Commit b35a021

Browse files
committed
Fixed cached request bug, improved waypoints validity check
1 parent 88c82ba commit b35a021

File tree

1 file changed

+17
-23
lines changed

1 file changed

+17
-23
lines changed

directives/directions.js

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -61,51 +61,45 @@
6161
];
6262
if (request)
6363
{
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]);
7067
}
68+
}
7169
}
7270

7371
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)) {
7674
delete request.waypoints;
7775
}
7876
}
7977

8078
var showDirections = function(request) {
8179
if (requestTimeout && request) {
82-
if (!routeRequest)
83-
{
80+
if (!routeRequest) {
8481
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];
9386
}
9487
}
9588
}
96-
}
97-
else
98-
{
89+
} else {
9990
requestTimeout = $timeout(function() {
100-
if (!routeRequest)
101-
{
91+
if (!routeRequest) {
10292
routeRequest = request;
10393
}
10494
directionsService.route(routeRequest, function(response, status) {
10595
if (status == google.maps.DirectionsStatus.OK) {
10696
renderer.setDirections(response);
97+
// Unset request for the next call
98+
routeRequest = undefined;
10799
}
108100
});
101+
$timeout.cancel(requestTimeout);
102+
// Unset expired timeout for the next call
109103
requestTimeout = undefined;
110104
}, routeRenderDelay);
111105
}

0 commit comments

Comments
 (0)