私は画像のリストを扱っています。画像は動的にロードされます。参照のリストは observableArray に格納されます。画像リストを完全に読み込んだ後、DOM 要素のハンドラーを接続したいと考えています。現時点での私の実装:
ビューで:
<div class="carousel_container" data-bind="template: { 'name': 'photoTemplate', 'foreach': ImageInfos, 'afterRender': renderCarousel }">
<script type="text/html" id="photoTemplate">
//...content of template
</script>
ビューモデルで:
self.counterCarousel = 0;
self.renderCarousel = function (elements) {
var allImagesCount = self.ImageInfos().length;
self.counterCarousel++;
if (self.counterCarousel >= allImagesCount) {
self.counterCarousel = 0;
// ... add handlers here
}
}
これは非常に醜いアプローチです。さらに、ユーザーはイメージを追加/削除できるため、追加または削除が必要になるたびに、すべてのハンドラーを削除して再度接続します。このシナリオを処理するためにカスタム バインドを編成するにはどうすればよいですか?