我正在编写一个需要使用Angular和Angular UI Bootstrap解析带有任意内容的Json文件的应用程序。
Json文件的每个根节点都将呈现为一个选项卡,每个选项卡的内容将使用遍历该节点的递归函数创建。
但我无法弄清楚为什么节点没有完全遍历。
在第一个节点(“conceitos”)中,呈现所有内容。
但是在第二和第三个节点(“nascimento”,“historico”)中,竞争部分呈现
在以下节点中,浏览器崩溃 编辑:不要崩溃了。我认为这是浏览器中的内容。
此代码段显示了此内容。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Recursivity Test</title>
<link href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css' rel='stylesheet'/>
</head>
<body>
<div ng-app="governanca" ng-controller="governanca">
<uib-tabset active="abaAtiva">
<uib-tab ng-repeat="item in content" index="$index" heading="{{item.key}}" select="carregacontent($index)"><div ng-bind-html="$parent.contentAtual"></div></uib-tab>
</uib-tabset>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-sanitize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.8.0/d3.min.js"></script>
<script src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.min.js"></script>
<script>
var app = angular.module("governanca", ['ui.bootstrap', 'ngSanitize']);
app.controller("governanca", ['$scope','$http', function($scope, $http){
var arquivo = "https://raw.githubusercontent.com/viniciusosousa/governancaCorporativa/master/governancaCorporativa.json";
$scope.contentAtual = '';
$scope.abaAtiva = 0;
$http.get(arquivo)
.then(function(response){
$scope.content = d3.entries(response.data);
});
$scope.carregacontent = function(index){
self.HTML = '';
console.log('*********************** NODE ITEM *************************');
console.log(angular.toJson($scope.content[index].value,true));
console.log('*********************** NODE END *************************');
$scope.contentAtual = processContent($scope.content[index].value);
}
function processContent(item){
if( typeof item == "object"){
if( Object.prototype.toString.call( item ) === '[object Array]' || (item.hasOwnProperty('key') && item.hasOwnProperty('value')) ) {
content = item;
} else {
content = d3.entries(item);
}
for (i=0; i < content.length; i++){
if (content[i].hasOwnProperty('value')){
self.HTML += '<h3>'+content[i].key+'</h3>'
itemcontent = content[i].value
} else {
itemcontent = content[i];
}
processContent(itemcontent);
}
} else {
self.HTML += item+'<br/>';
}
return self.HTML;
};
}]);
</script>
</body>
</html>
提前致谢
我的JSON文件