2017-03-16 97 views
1

我创建了一个使用AngularJS和引导程序的多选择下拉菜单,并添加了搜索和滚动选项,它工作正常。 我需要在多选下拉滚动条中滚动时实现无限滚动。它不适用于多选择下拉菜单,但无限滚动工作为div。 我看到onItemSelect的事件,onItemDeselect没有找到任何滚动多选择下拉的事件。angularJS ng-dropdown-multiselect实现无限滚动的滚动事件

我包括下面的代码:

<div ng-dropdown-multiselect="" options="user" selected-model="userModel" extra-settings="example14settings" when-scrolled="loadMore()"></div> 

$scope.example14settings = { 
    scrollableHeight: '100px', 
    scrollable: true, 
    enableSearch: true 
}; 

$http.get('user').success(function(response){ 
//users list has huge data need to implemented infinite scroll 
      $scope.userList = response; 
      $scope.users = $scope.userList.slice(0,10); 
}); 
$scope.loadMore = function(){ 
     $scope.user = $scope.users.slice(0, $scope.user.length + 8); 
}; 

外部DIV内部没有mutlselect下拉列表下面正在无限滚动代码同时搜寻后,没有做无限滚动的下一个数据集。

代码:

<div id="fixed" ng-dropdown-multiselect="" options="user" 
     selected-model="userModel" 
     extra-settings="example14settings" when-scrolled="loadMore()"></div> 

#fixed { 
height: 400px; 
overflow : auto; 
} 
$scope.example14settings = { 
    enableSearch: true 
}; 

angular.module('App').directive('whenScrolled', function() { 
    return function(scope, elm, attr) { 
     var raw = elm[0]; 

     elm.bind('scroll', function() { 
      if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) { 
       scope.$apply(attr.whenScrolled); 
      } 
     }); 
    }; 
}); 

如何我里面添加滚动的角度多选下拉无限滚动? 也当用户搜索的东西无限滚动时应该在搜索数据滚动时向下工作?

回答

0

从你在这里发布的内容可以看出,你没有应用你的“loadMore()”函数(但这可能不是你唯一的问题)。试试这个:

angular.module('App').directive('whenScrolled', function() { 
    return function(scope, elm, attr) { 
     var raw = elm[0]; 

     elm.bind('scroll', function() { 
      if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) { 
       scope.$apply('loadMore()'); 
      } 
     }); 
    }; 
}); 

尝试使用 “NG-下拉菜单,多选” 是这样的:

<ng-dropdown-multiselect when-scrolled="loadMore()"></ng-dropdown-multiselect>" 

您需要绑定的元素没有属性。

+0

谢谢你的回复。我在html中添加了when-scrolled =“loadMore()”,并且在向下滚动时调用loadMore()。无限滚动在div中工作时,我需要将它应用于ng-dropdown-多选可滚动条。 – neha

+0

你的问题是你在“div”而不是在“select”上调用指令。你的选择是一个属性而不是一个元素。 –

+0

你知道如何在袖子上打电话吗?我正在使用ng-dropdown-multiselect和下面的设置?是否有像滚动选择事件一样的滚动事件? $ scope.example14settings = { scrollableHeight:'100px', scrollable:true, enableSearch:true }; – neha