AngularJs ui-scroll重新加载不起作用

时间:2015-09-15 10:52:52

标签: angularjs angularjs-directive angularjs-ui-utils ui-scroll

在我们的一个角度应用程序中,我们使用ui-scroll指令进行延迟加载。我已经创建了一个适配器并分配给ui-scroll指令。我需要通过发出API请求和刷新数据来重新加载整个数据。

从ui-scroll文档中,我们可以看到reload()方法可用于我们分配给指令的适配器。

$scope.listAdapter = {adapter:{remain:true}};

我们将此适配器传递给自定义数据源,然后将其分配给ui-scroll转发器。

当用户点击按钮时,我需要通过从API中提取最新结果来重新加载整个结果。所以我尝试添加,

$scope.listAdapter.reload();

当我尝试调用reload方法时,它会抛出未找到的异常说明方法。 TypeError:$ scope.listAdapter.reload不是函数

此外,我尝试重新分配数据源并将空适配器传递给范围变量,但没有运气。

如果有人解决了这个问题,请告诉我需要做什么。

2 个答案:

答案 0 :(得分:0)

尝试将适配器定义为空对象: $scope.listAdapter = {};

答案 1 :(得分:0)

我看到有两种可能的问题。

  1. 范围分配错误。需要考虑到ui-scroll指令在AngularJS $parse服务的帮助下将声明性定义的属性注入目标作用域的帐户。它可以使任务变得不重要。有关详细信息,请点击the documentation。这里最好的做法是使用“Controller As”语法。

  2. 过早打电话。在初始化Adapter.reload()之前,不应该尝试执行ui-scroll(以及其他适配器方法),因为ui-scroll在指令的链接过程中将Adapter对象注入目标作用域,而不是立即。要保护Adapter方法的执行,您可以使用以下方法:

    $scope.doReload = function () {
    if (angular.isFunction($scope.adapter.reload)) {
        $scope.adapter.reload(reloadIndex);
      }
    };