所以基本上我构建一个基于位置的角度/离子应用,基本上每个功能都需要用户的地理位置。我试图将用户的位置数据提供给表单,控制器等。我知道获取用户位置的调用如下所示(这是一个回调)。
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);
});
基本上我如何传递用户所在位置的结果并将其用于各种其他功能?我是否需要在我想要用户所在位置的每个地方复制此代码段("注意它处于监视模式以检测更改")
非常感谢。
答案 0 :(得分:0)
您应该将该代码放在服务或工厂中,然后根据需要将其注入控制器。
答案 1 :(得分:0)
创建工厂并让诺言解析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;
}
}
}])
然后您可以将工厂注入您需要的任何地方。