Ionic / Angular JS -使用地理定位后输入字段不能正确更新
Ionic / Angular JS - Input fields not updating correctly after using Geolocation
我正在使用Ionic/Angular JS构建一个新的应用程序。在一个特定的应用程序选项卡中,我使用地理位置填充4个字段(街道名称,街道号码,纬度和长度)。
这是我的控制器JS对于这个特定选项卡的样子:
.controller('PetitionsCtrl', function($scope, $cordovaGeolocation, $log) {
var posOptions = {timeout: 10000, enableHighAccuracy: false};
$cordovaGeolocation
.getCurrentPosition(posOptions)
.then(function (position) {
$scope.lat = position.coords.latitude;
$scope.lng = position.coords.longitude;
$log.log($scope.lat);
$log.log($scope.lng);
$scope.pLat = {value: $scope.lat};
$scope.pLng = {value: $scope.lng};
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng($scope.lat, $scope.lng);
var request = {
latLng: latlng
};
geocoder.geocode(request, function(data, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (data[0] != null) {
$log.log("Strada: " + data[0].address_components[1].long_name);
$log.log("Numar: " + data[0].address_components[0].long_name);
$log.log("Localitate: " + data[0].address_components[2].long_name);
$log.log("Adresa: " + data[0].formatted_address);
$scope.pStreet = {value: data[0].address_components[1].long_name};
$scope.pNumber = {value: data[0].address_components[0].long_name};
} else {
$log.log("Adresa indisponibila");
}
}
})
});
})
HTML部分是这样的:
<label class="item item-input">
<span class="input-label">Strada</span>
<input type="text" ng-model="pStreet.value">
</label>
<label class="item item-input">
<span class="input-label">Număr</span>
<input type="text" ng-model="pNumber.value">
</label>
<label class="item item-input">
<span class="input-label">Lat</span>
<input type="text" ng-model="pLat.value">
</label>
<label class="item item-input">
<span class="input-label">Lng</span>
<input type="text" ng-model="pLng.value">
</label>
现在您可以看到,我使用$log
在控制台中显示信息。现在奇怪的部分来了……在控制台中,我得到了正确显示的所有信息。此外,<input type="text" ng-model="pLat.value">
和<input type="text" ng-model="pLng.value">
字段被填充,但是不是 <input type="text" ng-model="pStreet.value">
和<input type="text" ng-model="pNumber.value"
>,尽管正如我之前所说的,控制台向我显示了正确的值。更奇怪的是,如果我转到应用中的另一个选项卡,然后返回到这个选项卡,所有字段都被正确填充。我该怎么办?我哪里做错了?
在给$scope赋值后使用$scope.$apply()。pStreet和$scope.pNumber.
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 使用 Javascript 将字段输入除以 12
- 合并来自多个字段输入的搜索结果
- 使用 Javascript 实时打印字段输入数据
- 防止AngularJS中跨路由的字段输入重复
- 引用Iframe中的字段输入
- 禁用html5”;“必需”;不显示窗体部分时的字段输入属性
- JavaScriptFormValidation-需要特定的字段输入,但使用大写/小写
- 验证VF页面上所需字段输入的Javascript不起作用
- 在没有
- 使用Jquery将字段输入值作为查询字符串附加到url
- HTML5 jQuery选择所有日期字段'输入:date'
- 将字段输入复制到另一个字段输入
- 向图像添加字段(输入)
- 动态添加字段输入不会存储值并传递给控制器
- 向输入字段输入键击
- 我如何通过javascript验证datetime字段输入
- HTML如何将用户字段输入作为json对象发送
- 如何根据'select' onchange事件将值填充到第二个输入字段?输入