4

AngularJS を使用した Rails 4 アプリケーションがあります。angular の ui-utils モジュールの ui.scroll ディレクティブを使用してプロトタイプを作成しようとしています。Rails API は ng-repeat を使用するとうまく機能しますが、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 に答える