完全に読み込まれているノックアウト テンプレートがありますが、afterRender イベントが 2 回発生しています。関数が誤って 1 回呼び出され、afterRender によって 1 回呼び出される原因となっているのはデータ オブジェクトの問題だと思いましたが、アラート、それでも2回呼び出されます。
これが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 インスペクターを使用して、何がイベントをトリガーしているかを追跡できますか? Google マップ レンダラーは何かをいじっているのでしょうか? テンプレートを使用した foreach により、親テンプレートの呼び出しが複数回トリガーされますか?
ホワイトアトム
更新: 奇妙さが続きます... テンプレートを空白にすると、一度だけ起動します。ただし、コンテンツがある場合 ('.' だけでも)、afterRender が 2 回発生します。いいえ、ここに奇妙な部分があります..1回目はコンテンツがページに表示される前で、2回目は後です....