Javascript和JSON中的递归

时间:2017-06-09 03:06:58

标签: javascript angularjs json

我正在编写一个需要使用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文件

JSON file

0 个答案:

没有答案