Javascript 角度ng模型可以';t捕获加载的输入值

Javascript 角度ng模型可以';t捕获加载的输入值,javascript,jquery,angularjs,geolocation,Javascript,Jquery,Angularjs,Geolocation,我正在使用一个windowonload脚本来捕获long和lat,并将它们传递给隐藏的输入值 $(函数(){ window.onload=getLocation; var geo=navigator.geolocation; 函数getLocation(){ 国际单项体育联合会(geo){ geo.getCurrentPosition(显示位置); }否则{ 警报(“Oops,不支持地理位置API”); } } 功能显示位置(位置){ var lang=position.coords.long

我正在使用一个windowonload脚本来捕获long和lat,并将它们传递给隐藏的输入值

$(函数(){
window.onload=getLocation;
var geo=navigator.geolocation;
函数getLocation(){
国际单项体育联合会(geo){
geo.getCurrentPosition(显示位置);
}否则{
警报(“Oops,不支持地理位置API”);
}
}
功能显示位置(位置){
var lang=position.coords.longitude;
var lat=位置坐标纬度;
控制台日志(lat);
document.getElementById('txtlat')。value=lat;
document.getElementById('txtlang')。value=lang;
}

});不太熟悉jquery。。。但我认为问题是你在Angular之外修改一个角度输入,所以它不知道输入已经改变了

您应该使用$scope.$apply包装非angular代码,然后angular将知道输入已更改。比如:

$scope.$apply(function() {
    document.getElementById('txtlat').value = lat;
    document.getElementById('txtlang').value = lang;
});

有关$apply/$digest cycle的更多信息,请参阅。

为了使用设备的GPS获取坐标,您需要创建一个工厂,返回使用当前坐标解析的承诺,或者在出现问题时拒绝

看看这个:

angular.module('app',[]).service('geo',['$q',function($q){
返回{
getLocation:function(){
var deferred=$q.deferred();
如果(!navigator.geolocation){
//地理位置不可用,
//最好拒绝承诺,并将其返还:(
拒绝(“Oops,不支持地理定位API”);
回报。承诺;
}
navigator.geolocation.getCurrentPosition(
功能(pos){
//我们有你的位置!
延迟。解决(pos);
}, 
函数(错误){
//哦,不!我们找不到你的位置
延迟。拒绝(错误);
}, {
//一些场景
EnableHighAccurance:错误,
超时:5000,
最大值:0
}
);
延期退换货
}
};
}]).controller('ctrl',['$scope','geo',function($scope,geo){
geo.getLocation()。然后(
功能(pos){
$scope.coordinates=位置坐标;
控制台日志(pos);
},
函数(错误){
console.log(错误);
}
);
}]);

纬度:
经度:

这个问题中没有关于angularjs的内容,角度部分在哪里?我使用ng模型捕获输入字段的部分?:{{}应该写这部分让它更清楚,我想很抱歉,请你的问题并添加到那里,没有害处:)好的,我只是感谢你的提问,你如何将这些数据传递到你的服务器到现有的mongo模式tho?@ben我不知道,我对mongo一无所知,你在问题中也没有问过。如果你自己无法管理它,我建议你提出一个新问题(但基本上你需要这样做),这就是我要做的,从onload窗口获取long/lat,然后从工厂将它传递给我的控制器并保存它,但我很难处理ng bind表达式,以及如何在控制器中保存它,我不知道loss@ben基本上,在
controlergeoservice.js
上,您需要更改
经度:$scope.user.geopposition.coordinates.longitude,
经度:$scope.coordinates$scope.coordinates.longitude:null,
与纬度相同