好的,所以我知道在使用 AngularJS 时在控制器中进行任何 DOM 操作被认为是不好的做法,您应该使用指令和 $scope 来处理这些东西,但是事件绑定呢?从它的外观来看,考虑到所有内置事件指令,如 ngClick、ngMousedown、ngMouseenter 等,这也是不受欢迎的......但如果是这样的话,那么我有一段代码我不知道如何做AngularJS的方式。
我正在构建的应用程序具有无限滚动,它是用这段代码实现的(当前位于控制器中):
$(document).bind('scroll', function(){
if(!$scope.loadingIssues && $(window).scrollTop() + $(window).height() >= $('.user-feedback-list').offset().top + $('.user-feedback-list').height()) {
$scope.loadIssues();
}
});
这允许用户滚动页面,当页面到达存储无限滚动数据的元素的底部时,它会触发函数以加载更多数据。现在我没有进行任何 DOM 操作,所有函数都只是更新附加到 $scope 的数据,我让 AngularJS 进行 DOM 更新,但是这个事件是否与 AngularJS 的最佳实践绑定?如果是这样,我将如何以 AngularJS 的方式执行此操作(我认为指令在这种情况下不起作用,因为我认为不可能将指令附加到文档对象)?