Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在谷歌地图信息窗口中使用knocko模板绑定_Javascript_Templates_Google Maps Api 3_Knockout.js - Fatal编程技术网

Javascript 在谷歌地图信息窗口中使用knocko模板绑定

Javascript 在谷歌地图信息窗口中使用knocko模板绑定,javascript,templates,google-maps-api-3,knockout.js,Javascript,Templates,Google Maps Api 3,Knockout.js,我正在尝试使用一个敲除模板,用一个点击事件来填充我的google地图标记信息窗口,以一种模式显示wiki文章。现在,我的标记是空白的,我没有收到任何错误。你知道我做错了什么吗 html代码段 <script type="text/html" id="info-template"> <div data-bind="with: currentLocation"> <div id="m-title" data-bi

我正在尝试使用一个敲除模板,用一个点击事件来填充我的google地图标记信息窗口,以一种模式显示wiki文章。现在,我的标记是空白的,我没有收到任何错误。你知道我做错了什么吗

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代码段

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

完整代码在

您不能直接在Google setContent方法中添加敲除Js模板,该方法特别需要一个字符串或html节点来呈现。 见

因此,您正在添加的内容将作为字符串或html节点添加。但在您的例子中,它似乎是字符串,因为您传递的敲除模板不是有效的DOM节点,将被视为常规字符串。这里的关键是首先呈现html,然后将其内容设置为infowindow

使用以下命令更新您的
infowindow.setContent
方法

infowindow.setContent(document.getElementById("info-template").innerHTML);

希望有帮助

这是将html放入信息窗口,但这是否阻止了模板中的数据绑定单击事件?您可以在setContent方法之后绑定事件
ko.applyBindings(,)
。这可能是一个愚蠢的问题,但我可以在setContent方法之后的下一行中设置它吗?我应该用我已有的ko.applyBindings方法在js文件的底部设置它吗?是的,你应该在
setContent
之后调用该方法,因为你想在添加弹出窗口后立即设置click事件的绑定。在Js的底部添加将不起作用。只是一个建议,当我查看您的代码库时,您需要对代码进行重大重构。当我在寻找合适的上下文时,我无法为您修复它。让我知道它是否解决了您的问题。至于添加applyBindings方法,我不能有两个apply bindings方法。我自己也在努力解决这个问题。。。正在寻找一个不必重构整个代码库的修复方案。在此方面的任何帮助都是非常感谢的。