0

テンプレートにページングを実装しようとしていますが、AngularJSでページングを行う方法ng-repeatで見つけたコードを使用していますか?、つまり、これ: http: //jsfiddle.net/dalcib/J3fjc/

私のコードは、ハードコードされた値を使用する代わりに、jsonを返すURLからデータをフェッチする注入されたサービスを使用することを除いて、このjsfiddleの例のコードとほぼ同じです。

私が抱えている問題は、jsfiddleコードではコレクションの長さが常にゼロであるということです。私は初心者なので、理由はわかりません。関連するコードは次のとおりです。

...
collection = scope.$eval(rhs),
count = collection.length;

count常にゼロです。サービスからの応答を受信する前にコードが実行されたようです。

誰か助けてもらえますか?

4

2 に答える 2

1

$ eval()を使用する必要はありません。
$ evalは文字列を取得し、この名前のオブジェクトを取得します。
できることは、サービスまたはリソースで取得したjsonオブジェクトをスコープ変数に関連付けることだけです。
ng-repeatでは、彼のスコープ変数を使用します。

function gridCtrl($scope, sameResource) {
      sameResource.query( function (todos) {
             $scope.todos = todos;
       }
}

ビューで

<div ng-repeat="todo in todos"> ...
于 2012-10-19T16:16:42.490 に答える
0

あなたが$indexを探しているように私には聞こえます。

例えば:

<html ng-app>
  <head></head>
  <body ng-init="poops = ['fat tony','the turdis','hershey squirts']">
    <div ng-repeat="poo in poops">{{ poo + "/" + $index}}</div>
  </body>
</html>

出力:

fat tony/0
the turdis/1
hershey squirts/2
于 2014-06-02T01:40:24.107 に答える