나는 각도 배열을 사용하여 jVectorMap을 렌더링합니다.요소가 표시 될 때까지 지시문을 컴파일하는 AngularJS 지연
페이지가 처음로드지도가 숨겨져 있지만 링크를 클릭 할 수있는 사용자 그것은 크롬과 IE에서 완벽하게 정상적으로 작동하고 fancyBox
의지도를 보여주고 있지만, 렌더링 할 때 파이어 폭스는 나를 으악 때 숨겨진 요소에 SVG는 (내가 NS_ERROR_FAILURE
를 얻을)
, 내가있는 문제를 해결할 생각이 볼 때까지 컴파일/렌더링하지 내지도 지침을 얻으려고 (this question 참조) Firefox.
이 작업을 수행 할 수있는 방법이 있습니까, 아니면 잘못된 방식으로 진행할 예정입니까?
고맙습니다! ng-if
를 사용
업데이트
는 작업을 수행하지만 jVectorMap에 사용자가지도에 지역과 마커를 선택할 수 있습니다. fancyBox가 닫힌 후에도 이러한 선택 항목이 지속되도록하고 싶습니다. ng-if
은지도를 모두 삭제합니다.
지침 내가 HTML에 지시어를 사용하는 방법
angular.module('myApp')
.directive("selectionMap", electionMap);
function selectionMap(){
return {
restrict: "E",
link : function(scope,element){
jVectorMapOptions = {
// set jvm options (http://jvectormap.com/documentation/javascript-api/jvm-map/)
option : 'something',
option2: 'something else'
// and so on
};
element.vectorMap(jVectorMapOptions);
}
}
}
하십시오 fancybox-2 모달 내부
<div id="mapModal" ng-show="mapSelected">
<selection-map id="myMap"></selection-map>
</div>
mapModal
DIV 보여줍니다.
감사합니다 @Mator this _does_ 그러나,'jvectormap'에서 사용자는지도상의 마커와 영역을 선택할 수 있습니다. fancybox를 닫을 때, fancybox 맵을 다시 열 때 맵 선택이 지속되도록하고 싶습니다. 'ng-if'는 fancybox가 닫히면 맵을 완전히 제거합니다. 더 명확하게 내 질문을 수정합니다. – tkwargs
예, 그것은 'ng-if'를 사용하는 단점입니다. 명백한 (그러나 거의 불가능할 수도있는) 접근법은 사용자의 선택을 저장 한 다음 jvectormap을 다시 만들 때 다시 적용하는 것입니다. 대신에 높이를 0으로 설정하거나 Z- 색인을 사용하여 페이지 뒤쪽에 배치하는 일부 사용자 지정 지시어로지도를 숨길 수 있습니다 (이는 매우 해킹 될 수 있음). – Mator
나는 당신의 접근 방식을 취했고 모두 잘 작동합니다. 감사! – tkwargs