所以我对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调用,我到底做错了什么?
感谢您的帮助
答案 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