2016-08-12 8 views
0

私はスクリプトタグの関連コードを使用しているアプリケーションでgoogle mapsを使用しています。検索結果の後に経度、緯度を示していますこれらの値と、ここ スクリプト関数から入力フィールドまでの値ng-modelは未定義です。角度

入力

でこれらの値を示すことは入力ここ

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> 

が、それはNG-モデル=「formData.lng」未定義与え、私は手動でいくつかのこと を入力したときに、それが正常に動作しますが、値はスクリプトから来るとき、それはここでは未定義

を与える私のコントローラのコード

です
Sscope.formData={}; 
    $scope.values = function() { 

    console.log($scope.formData.lat); 
    console.log($scope.formData.lng); 
}; 

答えて

1

あなたは

document.getElementById('lat').value = place.geometry.location.lat(); 
document.getElementById('lng').value = place.geometry.location.lng(); 

NG-モデルはUPDAを取得していないとあなたのjavascriptファイルから緯度と長いを渡すとテッドまたは

を 'トリガー' は役立つかもしれない良いポストhereがある

angular.element($('#myInputElement')).triggerHandler('input') 

を試してみてください。

あなたは$apply$scope変数を設定する必要があり、このようなng-map

+0

このアプローチをどのように使うべきか分かりませんが、私は他の方法で$ scopeを使用しますが、$ watchは動作しません。 – khan

0

としてGoogleマップディレクティブを使用して検討することができます。

var latElem = angular.element(document.getElementById('lat')) 
var latScope = latElem.scope(); 
latScope.$apply("formData.lat=" + place.geometry.location.lat()); 

$applyは角式を評価し、フレームワークを更新するAngularJSダイジェストサイクルを開始します。

関連する問題