使用angular.js滚动HTML数据

Scrolling HTML data with angular.js

本文关键字:HTML 数据 滚动 js angular 使用      更新时间:2023-09-26

我试图重复列表与angular.js的html数据。我想用ngInfiniteScroll

所以我建立了一个模板,像这样。

更新:

<div class="scroll" id="antTalkList" talk-type="total" view-type="total"
    infinite-scroll='$ctrl.loadMore()' infinite-scroll-distance='2'>
    <ul class="user_list list ng-scope" ng-repeat="item in $ctrl.htmlViews">
        <ng-bind-html ng-bind-html="item"> </ng-bind-html>
</ul>
</div>

如上所述,我不知道如何在ul中重复$ctrl.htmlViews。每个htmlViews的项都用上面的HTML数据填充。

<li ... > ... </li> ... <li ... > ... </li>

这是我的antList组件。在控制器中,htmlViews在控制器初始化和滚动(loadMore函数)时由ajax调用推送。

ng-repeat似乎还好,也许它工作得很好。然而,infinite-scroll不工作。我添加了infinite-scroll="$ctrl.loadMore()"infinite-scroll-distance='10'

LoadMore函数在初始化时调用,但在滚动时不调用。我如何检查这个箱子?

这是我的组件片段。

.component('antList', {
    templateUrl : 'templates/ant-list.html'
    , controller : function AntListController($http, $attrs, $sce){
        var self = this;
        this.htmlViews = [];
        this.loading = false;
        $http({
            method : "GET",
            url : "ant/list?sectionId="+$attrs.talkType+"&pageCount=20&startIndex=0"
        }).then(function mySucces(response) {
            self.htmlViews.push($sce.trustAsHtml(response.data));
        });
        this.loadMore = function(){
            $http({
                method : "GET",
                url : 'ant/list?pageCount=20&startIndex=' 
                    + $('#antTalkList .user_list li').size()
                    + '&sectionId=' +$attrs.talkType
            }).then(function mySucces(response) {
                self.htmlViews.push($sce.trustAsHtml(response.data));
            });
        }
    }
})
<div class="scroll" id="antTalkList" talk-type="total" view-type="total"
    infinite-scroll='loadMore()' infinite-scroll-distance='2'>
    <ul class="user_list list ng-scope">
        <li ng-repeat="view in htmlViews">
         {{view}}
        </li>
    </ul>
</div>