为什么淘汰赛后两次击倒?

时间:2013-01-28 03:06:59

标签: events knockout.js

我有一个完美加载的淘汰模板,但是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检查器跟踪触发事件的内容吗?谷歌地图渲染器会捣乱吗?使用模板的foreach会导致父模板调用多次触发吗?

whiteatom

更新: 陌生感继续......如果我把模板留空,它只会触发一次。但是如果有任何内容(甚至只是'。'),则afterRender会发射两次。不,这是奇怪的部分..一旦是内容出现在页面上,第二个是在....之后....

1 个答案:

答案 0 :(得分:2)

发现它......

https://github.com/fazzamar/Knockout.js-External-Template-Engine/commit/5b053acd0465cd5c98b947d97cbd4d2e675c9f52

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

感谢帮助RP,你肯定让我做了一些代码的简化 - 这让我解决了。

干杯!