在Angular 2

时间:2017-03-04 18:02:15

标签: angular

我是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而不是一次又一次地循环整个数组吗?

请帮我一些示例代码。

1 个答案:

答案 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
    }
};

注意:如果您需要一些演示,请更新您的帖子代码,以便我可以重复使用