作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如何在 angularjs 中使用 HTML5 地理定位?我可以使用 HTML5 获取它;但是如何将它传递给 Controller 中的 angularjs 范围?任何示例 jsfiddle 都会节省我的时间!
最佳答案
我建议将其抽象为一个服务,这样您的 Controller 就不会依赖于 window.navigator,并避免不必要地使用 $scope.$apply()。这是我在我的项目中使用的:
angular.module('app', []).factory('geolocationSvc', ['$q', '$window', function ($q, $window) {
'use strict';
function getCurrentPosition() {
var deferred = $q.defer();
if (!$window.navigator.geolocation) {
deferred.reject('Geolocation not supported.');
} else {
$window.navigator.geolocation.getCurrentPosition(
function (position) {
deferred.resolve(position);
},
function (err) {
deferred.reject(err);
});
}
return deferred.promise;
}
return {
getCurrentPosition: getCurrentPosition
};
}]);
然后我像这样在我的 Controller 中使用它:
function captureUserLocation() {
geolocationSvc.getCurrentPosition().then(onUserLocationFound);
}
关于javascript - 如何在 angularjs 中使用 HTML5 地理定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23185619/
我是一名优秀的程序员,十分优秀!