Javascript HTML5地理位置超时选项在角度模式下不工作
我已经用10秒的超时实现了HTML地理定位。 但是,10秒后不会触发“失败”回调。 (如果用户拒绝共享其位置的权限,则调用“failure”回调) 我的代码有什么问题 这是我的代码:Javascript HTML5地理位置超时选项在角度模式下不工作,javascript,angularjs,html,geolocation,w3c-geolocation,Javascript,Angularjs,Html,Geolocation,W3c Geolocation,我已经用10秒的超时实现了HTML地理定位。 但是,10秒后不会触发“失败”回调。 (如果用户拒绝共享其位置的权限,则调用“failure”回调) 我的代码有什么问题 这是我的代码: function getLocation(){ var deferred = $q.defer(); var success = function(position){ deferred.resolve(position); };
function getLocation(){
var deferred = $q.defer();
var success = function(position){
deferred.resolve(position);
};
var failure = function(error){
deferred.reject(error);
};
var options = {timeout: 10000};
if ($window.navigator && $window.navigator.geolocation) {
$window.navigator.geolocation.getCurrentPosition(success, failure, options);
}
else {
deferred.reject("Unsupported browser");
}
return deferred.promise;
}
已解决
问题是,只有当用户同意共享其位置时,地理位置自身的超时才会启动。
我想处理这样一种情况:用户不同意,并且不会触发回调。
解决方案是使用$timeout创建另一个超时。我认为您需要使用
中的$scope.$apply()
运行摘要循环。然后调用方方法的
函数我尝试了。没有帮助。根本没有控制台错误。您使用的是哪个角度版本?1.4.2很好,我也使用角度1.4.2。超时在该JSFIDLE上也不起作用。