ng-show仅在从头开始设置为true时才起作用

时间:2018-01-06 17:13:48

标签: javascript angularjs google-maps ng-show ng-map

我正在使用angularjs库ng-map创建一个基于地图的应用程序,并遇到了一个相当奇怪的错误。

我有以下代码:

的script.js

vm.showMarker = true //Boolean to toggle marker

vm.toggleMarker = function(){
 if(vm.map.getZoom()>=12){
  vm.showMarker = true;   
 } else {
  vm.showMarker = false;
 }
 $scope.$apply();
}

HTML

<ng-map on-zoom-changed="vm.toggleMarker()" zoom="9">

<custom-marker>
 <div ng-show="vm.showMarker">
 ...
 </div>
</custom-marker>

</ng-map>

我们的想法是,只有在地图缩放得足够的情况下才能看到标记。

如果vm.showMarker从上面开始设置为true,则在加载页面时首先显示标记,然后在缩放时消失,直到缩放为&gt; = 12按预期进行。

但是,如果我将vm.showMarker设置为false,使其从头开始不可见,则在放大时不会显示。

有什么可能导致这种行为的想法吗?

1 个答案:

答案 0 :(得分:1)

请尝试使用ng-if

<custom-marker ng-if="vm.showMarker">