在我们的一个角度应用程序中,我们使用ui-scroll指令进行延迟加载。我已经创建了一个适配器并分配给ui-scroll指令。我需要通过发出API请求和刷新数据来重新加载整个数据。
从ui-scroll文档中,我们可以看到reload()方法可用于我们分配给指令的适配器。
$scope.listAdapter = {adapter:{remain:true}};
我们将此适配器传递给自定义数据源,然后将其分配给ui-scroll转发器。
当用户点击按钮时,我需要通过从API中提取最新结果来重新加载整个结果。所以我尝试添加,
$scope.listAdapter.reload();
当我尝试调用reload方法时,它会抛出未找到的异常说明方法。 TypeError:$ scope.listAdapter.reload不是函数
此外,我尝试重新分配数据源并将空适配器传递给范围变量,但没有运气。
如果有人解决了这个问题,请告诉我需要做什么。
答案 0 :(得分:0)
尝试将适配器定义为空对象:
$scope.listAdapter = {};
答案 1 :(得分:0)
我看到有两种可能的问题。
范围分配错误。需要考虑到ui-scroll
指令在AngularJS $parse
服务的帮助下将声明性定义的属性注入目标作用域的帐户。它可以使任务变得不重要。有关详细信息,请点击the documentation。这里最好的做法是使用“Controller As”语法。
过早打电话。在初始化Adapter.reload()
之前,不应该尝试执行ui-scroll
(以及其他适配器方法),因为ui-scroll
在指令的链接过程中将Adapter对象注入目标作用域,而不是立即。要保护Adapter方法的执行,您可以使用以下方法:
$scope.doReload = function () {
if (angular.isFunction($scope.adapter.reload)) {
$scope.adapter.reload(reloadIndex);
}
};