EmberJS团队几个月前发布了ListView,整个想法听起来很棒。但是给出的示例只是一个非常简单的数组,其中包含10000个对象。
无限滚动列表视图的大多数应用程序必须能够从远程源加载切片,取代分页方式(如Facebook和Twitter那样),但在这种情况下,我必须能够加载额外数量的项目当用户滚动而不是一次加载所有以较小的部分显示(如简单的例子所示)。我的意思是,这不是什么新鲜事,也很常见。
所以,问题是:怎么做? EmberJS Router的模型功能不会收到类似页码的内容,ListView也不会发送它。
我确实打开了issue并且答案听起来很明显,我没有看到。
那么,任何想法?
答案 0 :(得分:1)
从我们对ember codebase github的讨论中,我认为你实际上只是想使用ListView。
ListView的承诺是,它可以加载非常大的数据集而不会将它们全部放在VIEWPORT中......也就是说,它的行为与iOS的集合视图非常相似显示机制。 (https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/Introduction/Introduction.html)
无限加载列表不是主要的ListView用例,恕我直言。
听起来非常像你想要话语使用的无限滚动列表。 (如果您还没有看到它,请转到http://discuss.emberjs.com并点击一个较长的主题,然后向下滚动并记下它是如何加载的。
这篇文章可能会有所帮助,至少可以刺激你的研究: http://eviltrout.com/2013/02/16/infinite-scrolling-that-works.html
请注意,此要求不是特别简单或容易,并且在堆栈溢出的几分钟内不容易回答。但是,话语源代码 是开源的,而博客条目 是来自话语的主要人物之一,所以它绝对应该指向正确的方向。 :)
[编辑]:顺便说一下,这篇文章(http://www.smashingmagazine.com/2013/05/03/infinite-scrolling-get-bottom/)应该明确表示没有"一般'正确'用例或实施"围绕这种事情,因为它真的取决于你在你的应用程序中尝试实现的目标。恩伯没有为你做出这些决定。您尝试实现的基本部分是使用分页(我们可以使用新的查询参数功能),并使用它来驱动填充实时数据绑定模板的AJAX JSON API请求。如果你研究这两件事,并仔细研究话语处理它的方式,那么你就会明白如何做你想做的事。