在 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 事件的更好结构是什么?谢谢!