这是我的JSON数据的格式:
[
{
"Department_id": "34",
"Names": [
"Jack Jones",
"Matt Jones",
"Lynn Lewis"
],
"Employee-num": 3,
"Salary-info": {
"Jack Jones": 1000,
"Matt Jones": 2920,
"Lynn Lewis": 1500
},
},
]
你如何得到"薪水 - 信息"?并显示如下:
Jack Jones: 1000
Matt Jones: 2920
Lynn Lewis: 1500
在玉器上,我尝试使用
访问它p(ng-repeat='details in info.salary-info') {{ details }}
但是它没有工作,它只显示一个" 0"屏幕上。
info.Department_id适用于显示34的部门ID。
问题解决了。
为什么没有显示的问题是因为对象名称上存在连字符。
您需要使用'来访问此类对象。 ["带有连字符"]',
的对象的名称喜欢:{{info [" salary-info"]}}
而不是{{info.salary-info}}。
希望它可以帮助任何有同样问题的人。
答案 0 :(得分:3)
您可以从对象中获取键和值:
$('.approve').click().delay(1000);
https://docs.angularjs.org/api/ng/directive/ngRepeat#iterating-over-object-properties
答案 1 :(得分:2)
对象的ngRepeat
语法为(k, v) in obj
- 您可以这样做:
p(ng-repeat='(name, salary) in info.salary-info') {{ name }} : {{salary}}
答案 2 :(得分:2)
问题是Salary-info
中的连字符。
有关演示,请参阅此plunker。
的index.html
<!-- Jack Jones: 1000 Matt Jones: 2920 Lynn Lewis: 1500 -->
<p ng-repeat="name in details.Names">
{{name}}: {{details['Salary-info'][name]}}
</p> <!-- works -->
or
<p ng-repeat="(name, salary) in details['Salary-info']">
{{name}}: {{salary}}
</p> <!-- works-->
or
<p ng-repeat="(name, salary) in details2.SalaryInfo">
{{name}}: {{salary}}
</p> <!-- works -->
一切正常,但
<p ng-repeat="(name, salary) in details.Salary-info">
{{name}}: {{salary}}
</p> <!-- fails!-->
失败。
app.js
app.controller('MainCtrl', function($scope) {
$scope.details =
...
"Salary-info": {"Jack Jones": 1000, "Matt Jones": 2920, "Lynn Lewis": 1500},
...
$scope.details2 =
...
"SalaryInfo": {"Jack Jones": 1000, "Matt Jones": 2920, "Lynn Lewis": 1500},
...