Я использую карты Google в своем приложении, в которых я использую связанные с картами коды в теге скрипта, а после результата поиска он дает долготу, широту, и я получаю эти значения и показываю эти значения во входных данных
вот моя часть кода скрипта, которая передает lon и lat на вход
document.getElementById('lat').value = place.geometry.location.lat();
document.getElementById('lng').value = place.geometry.location.lng();
вот мой код HTML
<div class="from-group">
<li>Latitude: <input class="from-control" ng-model="formData.lat" id="lat"></li>
<li>Longitude: <input class="from-control" ng-model="formData.lng" id="lng" ></li>
<button class="btn btn-primary" ng-click="values()" id="idbtn" >Results</button>
</div>
но он дает undefined для ng-model = "formData.lng", и когда я ввожу что-то вручную, он отлично работает, но когда значения исходят из скрипта, он дает неопределенный
вот мой код контроллера
Sscope.formData={};
$scope.values = function () {
console.log($scope.formData.lat);
console.log($scope.formData.lng);
};
Когда вы передаете lat и долго от вашего javascript файла с помощью
document.getElementById('lat').value = place.geometry.location.lat();
document.getElementById('lng').value = place.geometry.location.lng();
Ng-модель не обновляется или не запускается,
пытаться
angular.element($('#myInputElement')).triggerHandler('input')
есть хороший пост здесь, что может помочь.
Вы можете использовать директиву google maps, такую как ng-map
Вам нужно установить переменную $scope
с $apply
.
var latElem = angular.element(document.getElementById('lat'))
var latScope = latElem.scope();
latScope.$apply("formData.lat=" + place.geometry.location.lat());
$apply
оценивает угловое выражение и инициирует цикл дайджеста AngularJS для обновления структуры.