【发布时间】:2016-08-11 01:15:51
【问题描述】:
我已经成功地使用 $http 服务在角度中使用他们的 API 从另一个服务器中提取 JSON 对象。然后我能够像这样显示这些值......
<div ng-controller="ApiController as ApiCtrl">
{{ApiCtrl.Api.status}}
{{ApiCtrl.Api.meta.count}}
{{ApiCtrl.Api.data[0].nickname}}
{{ApiCtrl.Api.data[0].account_id}}
</div>
这会正确显示值,但我无法显示键。我四处阅读,here 和 here。他们解释说,设置了一个 ng-repeat 来迭代对象并从中提取 keys 和 values。
<div ng-controller="ApiController as ApiCtrl">
<div>
<div ng-repeat="(key, value) in Api">
{{key}} : {{value}}
</div>
</div>
</div>
作为参考,这是 ApiController
function ApiController($http) {
var vm = this;
vm.Api = [];
$http.get('...').success(function (data) {
vm.Api = data;
});
};
这是我请求的 Json
{
"status": "ok",
"meta": {
"count": 1
},
"data": [
{
"nickname": "Mitcha47",
"account_id": 1001356515
}
]
}
第二种方法ng-repeat="(key, value) in Api"不起作用,只在html中显示* ngRepeat: (key, value) in Api *
我很困惑为什么它不起作用,并且不确定它是对语法的错误使用还是不理解 ng-repeat 如何完全起作用。
编辑
在ApiCtrl.Api中改为div ng-repeat="(key,value)"后就产生了->
status : ok
meta : {"count":1}
data : [{"nickname":"Mitcha47","account_id":1001356515}]'
这可以,但不完全是放入表格的格式,这是下一步。这会通过使用.fromJson 函数来解决吗?
我是否包含 ApiCtrl,因为每个模块中可以使用多个控制器,从而使所有内容都指向正确的值?
【问题讨论】:
-
JSON 是什么样的?至少展示一个样本。
-
我已经编辑了问题:)
-
什么是通过 np-repeat 打印的 html 输出示例?
-
@VickyR 答案中建议的 ng-repeat 更改产生了编辑部分中看到的输出。