4

我有一个使用 AngularJS 的 rails 4 应用程序。我正在尝试使用 Angular 的 ui-utils 模块中的 ui.scroll 指令创建一个原型。当我使用 ng-repeat 时,我的 rails API 运行良好,但是当我尝试使用 ng-scroll 时,我的视口从来没有任何数据。注意:我在应用程序的其他部分使用 jquery,所以我没有使用任何 jqlite 的东西。

查看:(我正在跳过所有标题内容 - 但知道包含 css/jscript)

<html ng-app="Raffler">
<body>
<div ng-controller="ItemCtrl">
    <div ng-scroll-viewport style="height:240px;">
        <ul>
            <li ng-scroll="entry in datasource">
                {{entry.name}}              
            </li>           
        </ul>
    </div>
</div> </body> </html>

控制器:(我正在跳过所有应用程序包含,但知道依赖项已注入)

angular.module("eli.Controllers").controller("ItemCtrl", 
    ["$scope", "Item", function ($scope, Item) {

    $scope.items = Item.query();

  $scope.datasource = {
    get: function(index, count, success) {

      // ensure we don't overrun the bounds of the data array
      var start = Math.max(0, index);
      var end = Math.min(index + count, $scope.items.length);

      var results = [];
      for (var i = start; i < end; i++) {
        results.push($scope.items[i]);          
      }

      success(results);      
    },

    revision: function() {
        return $scope.items;
    }
  };
}

]);
4

1 回答 1

1

所以我猜你的问题是在你的数据源上调用 get 函数时查询没有返回。

您需要在 get 函数中验证数据是否已准备就绪。我不确定查询调用的另一端是什么,但是如果有某种方法可以从该调用中获得承诺,那么您可以在 get 中使用它来在回调完成时执行它。

于 2014-11-24T22:17:32.660 回答