Events 为什么击倒触发afterRender事件两次?

Events 为什么击倒触发afterRender事件两次?,events,knockout.js,Events,Knockout.js,我有一个完全加载的敲除模板,但是afterRender事件触发了两次。。我认为是我的数据对象中的某个问题导致函数被意外调用一次,被afterRender调用一次,但我已将其减少为警报,它仍然被调用两次 这是html代码 <body> <div id="control-wrap" data-bind="template: { name: 'control_bar', data: App.Controls, afterRender: function(){ alert('test

我有一个完全加载的敲除模板,但是afterRender事件触发了两次。。我认为是我的数据对象中的某个问题导致函数被意外调用一次,被afterRender调用一次,但我已将其减少为警报,它仍然被调用两次

这是html代码

<body>
 <div id="control-wrap" data-bind="template: { name: 'control_bar', data: App.Controls, afterRender: function(){ alert('test');} }"></div>
 <div id="map_canvas" style="width:100%; height:100%"></div>
 <div id="info-window-container" data-bind="template: { name: 'info-yacht-racing', foreach: App.Transponders.transponders, afterRender: App.Tracker.infoWindowInit}"></div>
 <div id='notice-overlay'></div>
</body>

最大的问题是我不知道在哪里解决这个表单?有什么想法吗?我可以使用Chrome inspector跟踪触发事件的内容吗?谷歌地图渲染器会把事情搞砸吗?带有模板的foreach会导致父模板调用触发多次吗

白原子

更新: 奇怪还在继续。。。如果我将模板设置为空,它只会触发一次。但如果有任何内容(即使只有一个“.”),afterRender将触发两次。不,这是奇怪的部分。。一次是在内容出现在页面上之前,第二次是在…之后找到它

这似乎是外部模板引擎中的错误。拿出一个自我。参考,问题就解决了

谢谢你的帮助,你让我对代码做了更多的简化,这让我解决了这个问题


干杯

也许可以试着在一个JSFIDLE中获得它。你可以从这个开始:嗯。。对小提琴很完美。我已经把它缩小到一个关于佩奇的奇怪问题。更新了问题。