【问题标题】:Info-window not getting refreshed: AngularJS and Google Maps信息窗口未刷新:AngularJS 和谷歌地图
【发布时间】:2015-02-06 14:05:42
【问题描述】:

单击自定义标记时,我在显示信息窗口方面遇到了很多困难。我终于向他们展示了,但结果并不完全正确。事实上,单击第一个标记,信息框会正确显示其内容。但是,在第一个标记之后单击任何其他标记会导致信息窗口显示但显示以前的内容。 任何标记都会发生这种情况:第一次点击的作品,后继者显示之前的内容。

代码:

<map data-ng-model="mymap" zoom="4" center="[38.50, -95.00]" style="heigth:375px">

          <info-window id="foo">
          <div ng-non-bindable="">

            <ul>
              <li ng-repeat="item in list">{{item.name}}</li>
            </ul>
          </div>
        </info-window>

          <marker ng-repeat="item in list" 
          position="[{{item.coordinates}}]" itemTitle="{{item.name}}" 
          icon="./images/i.png" on-click="showInfoWindow('bar')" />     

        <info-window id="bar">
        <div class="infowindowtexttitle">{{this.itemTitle}}</div>
        </div>
        </info-window>

【问题讨论】:

  • 我看到你在你的 showInfoWindow 调用中硬编码'bar',你打算这样做吗?
  • 我不确定你的意思。我需要在信息窗口中显示 itemTitle,并且我在地图上放置了几个标记,每个标记在 itemTitle 字段中都有其标题存储。
  • 好的,你能更新上面的代码并显示 showInfoWindow 正在做什么吗?
  • 我没有实现,它是谷歌库的一部分
  • 另外,如何将 angularjs 托管变量(例如 item.name)传递给 showInfoWindow 点击处理程序?

标签: javascript angularjs google-maps


【解决方案1】:

问题通过以下方式解决: 1)围绕标记和信息窗口创建一个div 2) 将 ng-repeat 移入新的 div 3)使用迭代变量(item)而不是this。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 2016-07-10
    • 2013-05-18
    相关资源
    最近更新 更多