CompositeView では、このように無限スクロールを実装しました
List.Foo extends Marionette.CompositeView
initialize: (collection) ->
@page = 1
$(window).on('scroll', @loadMore)
loadMore: =>
if _nearBottom
@page++
App.vent.trigger('list:foo:near_bottom', @page)
_nearBottom =>
$(window).scrollTop > $(document).height - $(window.height) - 200
# Then I have the controller to process the event "list:foo:near_bottom",
# to ask for adding one more page of data in collection.
コードは基本的に期待どおりに動作します。しかし、この ComposteView は、ウィンドウ レベルの DOM イベントなど、その範囲外の DOM イベントを監視していると思うので、満足のいくものではありません。
レイアウトを使用してそのようなイベントを監視し、ブロードキャストすることを考えましたが、トップレベルのレイアウトはまだウィンドウ/ドキュメントをカバーするのに十分な幅がないようです:)
私の質問は、Marionette でこれらの種類のウィンドウ/ドキュメント レベルの DOM イベントを監視するためのより良い構造は何でしょうか? ありがとう!