Javascript 单击即可切换标记可见性

Javascript 单击即可切换标记可见性,javascript,angularjs,google-maps,angular-google-maps,Javascript,Angularjs,Google Maps,Angular Google Maps,我试图在单击打开热图时关闭地图标记 我的标记对象如下所示: var markers = { id: id, displayId: displayId, latitude: job.geolocation.location.latitude, longitude: job.geolocation.location.longitude, icon: icon, options: { title: 'ID: ' + displayId, visible: sho

我试图在单击打开热图时关闭地图标记

我的标记对象如下所示:

var markers = {
  id: id,
  displayId: displayId,
  latitude: job.geolocation.location.latitude,
  longitude: job.geolocation.location.longitude,
  icon: icon,
  options: {
    title: 'ID: ' + displayId,
    visible: showMarkers
  }
我将showMarkers默认为true:

var showMarkers = true;
然后在热图的单击处理程序中,我将
showmarks
更改为false:

vm.turnOnHeat = function() {
  vm.showHeat = true;
  showMarkers = false;
};

然而,这些标记从未消失。我不明白为什么
markers.options.visible
从不接受此更改。

因为您创建的对象只是一个实例对象。此对象仅在初始化时初始化,并且此对象存储在内存中。无论何时访问对象,都将使用旧的对象实例

使对象类似于:

var makers = function(){
// code here
}

这种方法可能会对您有所帮助。

您是否尝试使用$scope变量而不是本地($scope.markers)?