2014-12-29 3 views
0

지난 몇 시간 동안 다음 문제로 어려움을 겪어 왔지만 해결 방법이 없습니다. 각도 openlayers-directive 지시문을 사용하는 각도 응용 프로그램을 만들고 있습니다. $ scope.center 객체는 처음에지도에서 본 위치를 포함합니다. 다음 코드는지도를 보는 페이지 컨트롤러의 첫 번째 줄입니다. 이 모든 것이 잘 작동합니다.각도 컨트롤러 지침 범위

그러나 이제 Google 지오 코딩 API에서 가져온 위치로 센터 개체를 업데이트하려고합니다. 컨트롤러에서 다음과 같은 기능은 구글 API의 결과 행을 호출 클릭 : 내 콘솔에서

$scope.gotoLocation = function(lat, lon) { 
    $log.log("called"); 
    $scope.center = { 
     lat: 50, 
     lon: 50, 
     zoom: 0 
    } 
} 

을 "소위"문자열 로그가 나타나지만지도의보기는 변경되지 않습니다. 또한 자동 검색 옵션이 true로 설정되어 있기 때문에이 개체가 현재 lat 및 lon으로 변경되었지만 함수에서 $ scope.center를 출력하면 위에 설정된 원래 개체가 인쇄됩니다. 나는 다음과 같은 코드로이 문제를 확인했습니다 :

<openlayers ol-controls="controls" ol-center="center" ol-layers="layers" ol-markers="markers"> 
    <ol-marker ng-repeat="marker in markers" lat="marker.lat" lon="marker.lon"></ol-marker> 
</openlayers> 

<form> 
    Latitude : <input type="number" step="any" ng-model="center.lat" /> 
    Longitude : <input type="number" step="any" ng-model="center.lon" /> 
    Zoom : <input type="number" step="any" ng-model="center.zoom" /> 
</form> 

모든 3 필드 내 현재의 위도와 경도를 표시하고 또한 내가 필드를 변경할 때지도 위치 업데이트 (!). 템플릿 자체에서 모델을 변경하면 작동하지 않으며 컨트롤러에서 모델을 변경하면 작동하지 않는 이유가 없습니다. 아무도 이것으로 나를 도울 수 있습니까? 이 지침에

링크 : https://github.com/tombatossals/angular-openlayers-directive/blob/master/dist/angular-openlayers-directive.js

+0

음, 문제를 복제 자로 복제하려고 할 수 있습니까? 다음은 시작을위한 각도를위한 빈 템플릿입니다. http://plnkr.co/edit/WprgipAdFBtxDKM6jogo?p=preview – SoluableNonagon

답변

0

그것은 다른 범위로해야했다. 내지도보기가 ng-view를 사용하여 포함되었습니다. 내 검색 표시 줄은 ng-include를 사용하여 포함되었으므로 서로 다른 범위를가집니다. 나는 그것을 공장을 사용하여 해결했다.

0

당신의 자동 검색 변수가 삭제됩니다 보인다. 그것은 자동 업데이트와 관련이 있습니까?

개체를 속성을 업데이트 할 gotoLocation 기능을 변경하기보다는 덮어 쓰기를 시도 :

$scope.gotoLocation = function(lat, lon) { 
    $log.log("called"); 

    $scope.center.lat = 50; 
    $scope.center.lon = 50; 
    $scope.center.zoom = 0; 

} 
+0

처음에 autodiscover를 true로 설정하면 지시자가 사용자의 현재 위도와 경도를 검색하고 현재 lon 및 lat를 지정하고 자동 검색을 false로 설정합니다. 컨트롤러가로드 된 후 결국 중앙 객체는 다음과 같이 표시됩니다 센터 : { 를 위도 : , 경도 : , 줌 : 1, 자동 검색 : 거짓 를}, 을 그러나, 나는 $ 범위를 로그인 할 때. $ scope.gotoLocation 함수의 중심에 있으면 초기 상태로 유지됩니다. 나는 autodiscover가 false로 변경되었음을 알았습니다. – user2817219

+0

덩어리로 문제를 재현 할 수 있습니까? – SoluableNonagon