3

我使用http://nlaplante.github.io/angular-google-maps/在我的角度應用程序中顯示地圖。 我有一個通用的控制器爲我的頁面獲取Json。 來顯示標記,我在示波器中使用$ watch,因爲我會做實時和標記位置可以更改。AngularJS:'google-maps':在infoWindow中調用指令

$scope.model = new Model 'api/now.json' 
$scope.state = new DState 

$scope.$watch -> 
    markers = [] 
    _($scope.model.objects).each (obj) -> 
    markers.push 
     latitude: obj.latitude 
     longitude: obj.longitude 
     infoWindow: "<info-window>SHOULD NOT DISPLAY CAUSE DIRECTIVE</info-window>" 

    markers 
    , (newValue) -> 
    $scope.state.map.markers = newValue 
    , true 

我的指令是基本的:

am.directive "infoWindow", -> 

restrict: 'E' 
template: "<div>IN DIRECTIVE</div>" 
replace: true 

我的HTML頁面調用地圖:

#dashboard{ng:{controller: 'dashboardCtrl'}} 


    #map.google-map{center:  'state.map.center', 
        zoom:  'state.map.zoom', 
        markers: 'state.map.markers', 
        draggable: 'true'} 

和DState廠定義狀態:

.factory 'DashboardState', (Media) -> 
    class DashboardState 
    defaults: 
     map: 
     center: 
      latitude: 45.764043 
      longitude: 4.835659 
     zoom: 10 
     markers: [] 
     selectedObj: null 

    constructor: (initialData) -> 
     _(@defaults).extend initialData 
     _(this).extend @defaults 

所以,我在我的infoWindow中的顯示是

不應該顯示原因DIRECTIVE

但我應該有什麼是我的指令:

指令中

我的指令不叫...操作你有想法嗎?

這是一個雙重問題,我想將我工廠的SelectedObj設置爲Obj本人。你有一個想法如何處理事件點擊標記,並把它放在哪裏調用誰可以分配我的對象到SelectedObj的方法?

由於通過提前

+0

我覺得不受角度重新評估改造指令,它直接顯示原始的HTML ..我依然沒有找到的那一刻 – guillaumek

+0

的解決方案是什麼,如果你使用$手動編譯成編譯該html字符串(用於infowindow),然後將其綁定到作用域。這應該是角色來處理指令。 – aet

回答

0

你可以嘗試以下方法:

  1. 獲得最新版本的angularjs-UI-地圖
  2. 使用指令的tempalteUrl財產 - 你可以在裏面添加指令該模板(請參閱源代碼中包含的example.html是如何實現的)。

這樣就可以避免HTML

我已經遇到了類似的問題的任何自定義編輯:https://stackoverflow.com/questions/20843463/angularjs-using-a-directive-in-google-maps-marker-window

如果你發現任何其他方法,請不要張貼。

HTH