使用Knockout ko模板绑定谷歌地图infowindow

时间:2017-06-26 04:00:15

标签: javascript templates google-maps-api-3 knockout.js

我正在尝试使用淘汰模板填充我的谷歌地图标记信息窗口,点击事件以模式显示维基文章。现在,我的标记空白,我没有收到任何错误。关于我做错了什么的想法?

html代码段

<script type="text/html" id="info-template">

            <div data-bind="with: currentLocation">

               <div id="m-title" data-bind="text: title"></div>

            </div>

            <button id="wiki-a" data-bind="click: toggleWiki">

                Wikipedia Articles

            </button>

            <div id="pano"></div>

        </script>

js snippet

infowindow.setContent('<div id="info-window" data-bind="template:' + 
                        '{ name: \'info-template\'}"></div>');

https://github.com/CHBaker/Neighborhood-map

的完整代码

1 个答案:

答案 0 :(得分:0)

你不能直接在Google setContent方法中添加Knockout Js模板,该方法特别需要一个字符串或html节点来渲染。 请参阅docs

因此,您添加的内容将添加为字符串或html节点。但在你的情况下它似乎是字符串,因为你传递的淘汰模板不是有效的DOM节点,并将被视为常规字符串。这里的关键是首先渲染html,然后将其内容设置为infowindow。

使用此

更新您的infowindow.setContent方法
infowindow.setContent(document.getElementById("info-template").innerHTML);

希望它有帮助!