ng-repeat无法正确执行angularjs

时间:2013-08-28 20:40:02

标签: javascript html angularjs

所以我对angular很新,我想要做的是从RESTful调用中获取一个json集合并循环遍历每个调用,以显示它们的值,同时将其指定的id与href相关联。 / p>

下面你会发现我的尝试:

<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调用,我到底做错了什么?

感谢您的帮助

2 个答案:

答案 0 :(得分: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绑定到documents而不是data,然后保留现有模板。这也将确保您的orderBy继续有效。

答案 1 :(得分:0)

请参阅此处:https://stackoverflow.com/a/11972028/1449799您要考虑使用routeprovider的reolve属性。注意小问题(解决方案有点过时,$ defer已重命名为$ timeout)Delaying AngularJS route change until model loaded to prevent flicker