2

在我們的一個角度應用中,我們使用ui-scroll指令進行延遲加載。我創建了一個適配器並分配給了ui-scroll指令。我需要通過發出API請求和刷新數據來重新加載整個數據。AngularJs ui-scroll刷新不起作用

從ui-scroll文檔中,我們可以看到reload()方法可用於我們分配給指令的適配器。

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

我們將此適配器傳遞給自定義數據源,然後將其分配給ui-scroll中繼器。

當用戶點擊一個按鈕時,我需要通過從API中提取最新結果來重新加載整個結果。所以我試圖通過添加,

$scope.listAdapter.reload(); 

當我嘗試調用重裝方法,它會拋出異常說明找不到方法。 類型錯誤:$ scope.listAdapter.reload不是一個函數

此外,我試圖通過重新分配數據源和傳球空適配器範圍的變量,但沒有運氣。

如果有人解決了這個問題,請告訴我需要做什麼。

回答

0

嘗試定義適配器作爲一個空對象: $scope.listAdapter = {};

+0

請在你的答案詳細說明。否則它是一個評論。 – Matsmath

0

可能有兩種類型的問題,我看到。

  1. 錯誤範圍分配。在AngularJS $parse服務的幫助下,需要考慮ui-scroll指令將聲明性定義的屬性注入到目標範圍中的帳戶。它可以使任務不平凡。欲瞭解更多詳情,請點擊the documentation。這裏最好的做法是使用「Controller As」語法。

  2. 致電太早。在ui-scroll初始化之前,您不應該嘗試執行Adapter.reload()(和其他Adapter方法),因爲ui-scroll在指令的鏈接過程中不會立即執行,而是將Adapter對象注入到目標範圍中。爲了保護適配器方法的執行,你可以使用以下方法:

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