【问题标题】:How do I pass geo location data around in Angular JS?如何在 Angular JS 中传递地理位置数据?
【发布时间】:2015-04-08 00:36:08
【问题描述】:

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

 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);
  });

基本上,我如何传递用户位置的结果并将其用于各种其他功能?我是否需要在我想要用户位置的每个地方复制此代码 sn-p(“注意它处于监视模式以检测更改”)

非常感谢。

【问题讨论】:

    标签: javascript angularjs geolocation ionic-framework


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      创建一个工厂并让 Promise 解析 latLng。

      .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;
        }
      
      }
      }])
      

      然后您可以将工厂注入到您需要的任何地方。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-05
        • 1970-01-01
        • 1970-01-01
        • 2015-07-12
        • 2019-02-08
        • 2020-05-21
        • 1970-01-01
        相关资源
        最近更新 更多