2016-08-23 4 views
1

에 렌더링되지 NgMap의 기능이 사실상내가이 NG 템플릿을 ngDialog

  $scope.pushDialog = function() { 
      ngDialog.closeAll(); 
      ngDialog.open({ 
       template: 'pushDialog', 
       className: 'ngdialog-theme-default', 
       scope: $scope 
      }); 
     }; 

입니다

<h5 ng-click="pushDialog()"><span class="pull-right glyphicon glyphicon-share"></span></h5> 

을 클릭 호출

<script type="text/ng-template" id="pushDialog"> 
<div class="col-md-12"> 
    <div class="col-md-6"> 
     <md-input-container class="md-block"> 
      <input ng-model="pushLocName" type="text" ng-required="true" places-auto-complete on-place-changed="placeChanged()" aria-label="Location Name" types=['geocode'] required> 
     </md-input-container> 

     <md-input-container class="md-block" style="margin-top:0;"> 
      <ng-map center="{{spark.location[1] || spark.lat}},{{spark.location[0] || spark.lng}}" zoom="8" default-style="false" > 
       <marker animation="DROP" position="{{pushPayload.location[1]}}, {{pushPayload.location[0]}}" draggable="true" on-dragend="getMarkerLocation()" animation="Animation.BOUNCE"></marker> 
      </ng-map> 
     </md-input-container> 
    </div> 
</div> 
<div class="ngdialog-buttons"> 
    <button type="button" class="ngdialog-button pull-left ngdialog-button-primary" ng-click="pushSpark()"> Confirm</button> 
    <button type="button" class="ngdialog-button pull-right ngdialog-button-secondary" ng-click="closeThisDialog('Cancel')"> Cancel</button> 
</div> 

각 지시어 내부. ngMap은 ng-template 내부에 있지 않지만 지시문에 있으면 올바르게 렌더링됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

마지막으로 시간 초과 기능을 추가하여 문제를 해결했습니다. ngDialog 모달의로드가 완료된 후에 만 ​​ngmap을로드해야합니다.

<ng-map center="{{spark.location[1] || spark.lat}},{{spark.location[0] || spark.lng}}" zoom="8" ng-if="mapDisplay" > 
    <marker animation="DROP" position="{{pushPayload.location[1]}}, {{pushPayload.location[0]}}" draggable="true" on-dragend="getMarkerLocation()" animation="Animation.BOUNCE"></marker> 
</ng-map> 

컨트롤러 기능

$scope.pushDialog = function() { 
    ngDialog.closeAll(); 
    ngDialog.open({ 
     template: 'pushDialog', 
     className: 'ngdialog-theme-default', 
     scope: $scope 
    }); 
    $timeout(function(){ 
     $scope.mapDisplay = true; 
    }, 500); 
}; 
+0

편집! 나를 위해 일한다! 고맙습니다. – chabislav

관련 문제