Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何在Angular JS中传递地理位置数据?_Javascript_Angularjs_Geolocation_Ionic Framework - Fatal编程技术网

Javascript 我如何在Angular JS中传递地理位置数据?

Javascript 我如何在Angular JS中传递地理位置数据?,javascript,angularjs,geolocation,ionic-framework,Javascript,Angularjs,Geolocation,Ionic Framework,所以基本上我正在构建一个基于位置的angular/ionic应用程序,基本上每个功能都需要用户的地理位置。我正试图将位置数据从用户提供给表单、控制器等。我知道获取用户loc的调用如下所示,这是一个回调 Navigator.geolocation.watchPosition(function (pos) { var latLng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude); }, func

所以基本上我正在构建一个基于位置的angular/ionic应用程序,基本上每个功能都需要用户的地理位置。我正试图将位置数据从用户提供给表单、控制器等。我知道获取用户loc的调用如下所示,这是一个回调

 Navigator.geolocation.watchPosition(function (pos) {
      var latLng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
  }, function (error) {
      alert('Unable to get location: ' + error.message);
  });
基本上,我该如何传递用户位置的结果,并将其用于其他各种功能?我是否需要在每个需要用户位置的地方复制此代码段注意,它处于监视模式以检测更改


非常感谢。

您应该将该代码放入服务或工厂,然后根据需要将其注入控制器

创建一个工厂,让承诺解决问题

.factory('Local', ['$q', function($q){
  return {getLocation: function(options){
    var q = $q.defer();
    navigator.geolocation.watchPosition(function (pos) {
    var latLng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
    q.resolve(latLng);
 }, function (error) {
  q.reject(error)
 }, options);
    return q.promise;
  }

}
}])
然后你可以把工厂注入任何你需要的地方