我正在尝试在表格中显示数据。
行和列是动态的。
我想使用ng-repeat
。
我正在以这种形式接收数据:
headers: [
0: {"heading1"},
1: {"heading2"},
2: {"heading3"}
]
data: [
0:{ id:1, code:"Barry" , description:"Allen" }
1:{ id:2, code:"Naruto" , description:"Uzumaki" }
2:{ id:3, code:"Hannah" , description:"Montana" }
]
我尝试过这种方式:
<thead>
<tr>
<td ng-repeat="c in headersData">
{{c}}
</td>
</tr>
</thead>
<tbody>
<tr ng-repeat="c in columnData">
<td>{{c.id}}</td>
<td>{{c.code}}</td>
<td>{{c.description}}</td>
</tr>
</tbody>
但是它没有呈现thead
。
有解决办法吗?
答案 0 :(得分:1)
var app = angular.module('testApp',[])
app.controller('MainController',function($scope) {
$scope.headersData = [
"heading1",
"heading2",
"heading3"
];
$scope.columnData = [
{ id:1, code:"Barry" , description:"Allen" },
{ id:2, code:"Naruto" , description:"Uzumaki" },
{ id:3, code:"Hannah" , description:"Montana" }
] ;
});
<!DOCTYPE html>
<html ng-app="testApp">
<head>
<script data-require="angular.js@*" data-semver="4.0.0"
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.10/angular.min.js">
</script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="MainController">
<table>
<tr>
<th ng-repeat="th in headersData">{{th}}</th>
</tr>
<tr ng-repeat="x in columnData">
<td>{{x.code}}</td>
</tr>
</table>
</body>
</html>
答案 1 :(得分:0)
当您收到类似标题的数组时,必须为键和值对定义一个变量名。试试这个:
selected: any = '2';
<mat-form-field>
<mat-select placeholder="Toppings" [(ngModel)]="selected" [formControl]="toppings">
<mat-option *ngFor="let topping of list" [value]="topping.id" [disabled]="selected === '2' && topping.id === '1'">{{topping.name}}</mat-option>
</mat-select>
</mat-form-field>
答案 2 :(得分:0)
首先,这是错误的做法。
有一种方法可以使用ng-repeat="(key,value) in yourjson
格式。
所以请先检查一下。
并且您的标头不应以这种方式声明。或换句话说,不应以这种方式呈现。您正在做c in headers
,它将为您提供对象。 {heading1 }
,依此类推。
这是一个非常基本的问题,Stack Overflow中已经提供了许多答案。
做类似的事情,
ng-repeat="x in headers"
并将标题定义为
headers= ["heading1","heading2","heading3"]
因为您声明的不是有效的JSON。
要检查JSON的有效性,您可以检出JsonLint。