gpt4 book ai didi

javascript - 嵌套的 JSON 不显示在 ng-repeat 中

转载 作者:行者123 更新时间:2023-11-30 17:22:20 25 4
gpt4 key购买 nike

我在使用 ng-repeat 指令访问嵌套的 JSON 时遇到问题。我知道它正在工作,因为显示了 JSON 对象的未嵌套部分。

这是我的代码的一部分:http://plnkr.co/edit/V2iURMa8t7vG9AqDFMOf?p=preview

JavaScript:

var app = angular.module("app", [ ]);
app.controller("AppTest", function($scope){
$scope.currentInfo=[{"id":0,"article":"JavaScript Conquers the World","publisher":"Daily Times","meta_data":{"comments":4}},
{"id":1,"article":"The Problem with Foobar","publisher":"New York Times","meta_data":{"comments":27}}];
$scope.tableInfo=[{"name":"id","dataType":"Integer","isEditable":false},
{"name":"article","dataType":"String","isEditable":true},
{"name":"publisher","dataType":"String","isEditable":false},
{"name":"meta_data.comments","dataType":"Integer","isEditable":false}];
});

HTML:

 <body ng-app="app" ng-controller="AppTest as app"
<table>
<tbody ng-repeat="anotherItem in currentInfo">
<tr>
<td ng-repeat="item in tableInfo">{{anotherItem[item.name]}}</td>
</tr>
</tbody>
</table>
</body>

最佳答案

另一个更好的解决方案是在 Controller 中添加函数来为您解析值。您的解决方案的问题是您需要 Angular 来解析 meta_data.comments,但它将其视为数组查找中使用的字符串,因为它已经解析了 item.name。

$scope.resolveLookup = function(object, lookup) {
var depth = lookup.split('.').length;
var currentObj = object;

for(var x=0; x<depth; x++) {
currentObj = currentObj[lookup.split('.')[x]];
}
return currentObj;
};

然后将 HTML 更改为:

<td ng-repeat="item in tableInfo">{{resolveLookup(anotherItem,item.name)}}</td>

这是 Plunker:http://plnkr.co/edit/RVd2ncwstyQtCtdhcC9U?p=preview

关于javascript - 嵌套的 JSON 不显示在 ng-repeat 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24918345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com