我是Angular 2的新手。通常我们使用* ngFor循环遍历数组,并根据数组中的值显示HTML。例如
<ul *ngFor="let employee of employees">
<li>{{employee.name}}</li>
</ul>
这完美无缺。但每当我们向该数组添加元素(甚至是1个元素)时,它将遍历整个数组以显示HTML。对吗?
我想使用无限滚动插件(https://www.npmjs.com/package/angular2-infinite-scroll)它正在工作,每当滚动触发器时,元素都会添加到数组中,整个数组从一开始就循环生成HTML。我不认为这是一种最佳实践,因为每当滚动触发它将遍历整个数组以显示HTML。
理想情况下,来自特定滚动的元素应该附加到现有的HTML而不是一次又一次地循环整个数组吗?
请帮我一些示例代码。
答案 0 :(得分:0)
在这种情况下,当用户使用下面滚动到页面末尾时,您应该触发服务调用以获取下一个数组元素,
window.onscroll = function(ev) {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
//raise the service call to fetch next set of array elements
}
};
注意:如果您需要一些演示,请更新您的帖子代码,以便我可以重复使用