1

したがって、私はかなり角度のある新しいものであり、RESTful 呼び出しから取得した json コレクションを取得し、それぞれをループして、指定された ID を href に関連付けながら値を表示することを試みています。

以下に、私が試したことを示します。

<div class="span2">
        <!--Sidebar content-->

        Search: <input ng-model="query">
        Sort by:
        <select ng-model="orderProp">
            <option value="name">Alphabetical</option>
            <!--option value="age">Newest</option>
            <option value="-age">Oldest</option-->
        </select>

    </div>
    <div class="span10">
        <!--Body content-->
        <ul class="documents">
            <li ng-repeat="document in documents | orderBy:orderProp" class="thumbnail">
                <a href="#/rest/{{document.document_id}}">{{document.title}}</a>
            </li>
        </ul>
        <pre>{{ documents | json }}</pre>
    </div>

Shttp 呼び出し:

    function DocListCtrl($scope, $http)
{
    console.log('getting documents data');
    $http.get('/*RESTful call here*/').success(function(data)
    {
        $scope.documents = data;
    });
    $scope.orderProp = 'name';
}

ページを実行すると、リストを問題なく使用できます

<pre>{{ documents | json }}</pre>

しかし、ng-repeat は実装に失敗します。

編集

これが私が扱っているJsonの例です。

{
  "next": {},
  "items": [
    {
      "document_id": 3177554002,
      "title": "title of some item"
    }
]
}

データを希望どおりにリストできない ng-repeat 呼び出しで間違っていることは何ですか?

助けてくれてありがとう

4

2 に答える 2

1

あなたの JSON に基づいて、あなたの ng-repeat が正しくないことがわかります。items次のように、反復するときにドキュメント オブジェクト内の配列を参照する必要があります。

<ul class="documents">
    <li ng-repeat="document in documents.items | orderBy:orderProp" class="thumbnail">
        <a href="#/rest/{{document.document_id}}">{{document.title}}</a>
    </li>
</ul>

または、単純にしたい場合は、単にバインドdata.itemsするのではなく、既存のテンプレートを保持します。これにより、確実に機能し続けることができます。documentsdataorderBy

于 2013-08-29T14:00:18.100 に答える
0

ここを参照してください: https://stackoverflow.com/a/11972028/1449799 routeprovider の reolve プロパティの使用を検討したい。小さな落とし穴に注意してください (ソリューションは少し古くなっています。$defer は $timeout に名前が変更されています)ちらつきを防ぐために、モデルがロードされるまで AngularJS ルートの変更を遅らせる

于 2013-08-28T21:14:00.820 に答える