如何使用带有 AngularJS 的 table 元素显示子级数组
How to show Sublevel Array Using table element with AngularJS
我是 AngularJS 的初学者。
我的问题是如何使用 expand/collapse 功能以 table 格式显示 Parent/Sub 级数组记录(子行应在展开父行时显示)AngularJS.
我已经完成了静态编码,它显示所有记录默认展开而不使用 AngularJS,如下图所示。
我想在页面加载时默认仅显示父记录,然后如果使用扩展任何父记录(行),则应只扩展子行。
我的 Json 是:
var jsondata = [
{
项目名称:"product1",
orderNumber:123,
订单详细信息:[
{
项目名称:"Sub Item 1",
项目代码:"code1"
},{
项目名称:"Sub Item 2",
项目代码:"code2"
}
]
},{
项目名称:"product2",
orderNumber:1223,
订单详细信息:[
{
项目名称:"Sub Item 3",
项目代码:"code3"
},{
项目名称:"Sub Item 4",
项目代码:"code4"
},{
项目名称:"Sub Item 1",
项目代码:"code1"
},{
项目名称:"Sub Item 6",
项目代码:"code6"
}
]
},{
项目名称:"product3",
orderNumber:1123
}
];
最初我写了下面的代码,它没有按预期工作:
<table class="table">
<thead>
<tr class="table-blue-header">
<th style="width:20px;"></th>
<th><a href="javascript:;">Item Name</a></th>
<th><a href="javascript:;">Order Number</a></th>
</tr>
</thead>
<tr ng-repeat="LocalData in SearchOrdersData">
<th style="width:20px;"><a ng-click="LocalData.visible = !LocalData.visible" href="javascript:;">»</a></th>
<td>{{LocalData.itemName}}</td>
<td>{{LocalData.orderNumber}}</td>
</tr>
<tr ng-if="LocalData.visible" ng-repeat="orderdetailsdata in data = (LocalData.orderDetails)">
<td colspan=3><table class="table table-bordered">
<thead>
<tr class="table-blue-header">
<td>Item Name</td>
<td>Item Code</td>
</tr>
</thead>
<tbody>
<tr ng-show="data.length">
<td>{{orderdetailsdata.itemName}}</td>
<td>{{orderdetailsdata.itemCode}}</td>
</tr>
<tr ng-hide="data.length">
<td colspan="10">No Child records to display.</td>
</tr>
</tbody>
</table></td>
</tr>
</table>
谁能帮我解决这个问题?
您试图在下一个 tr 中访问 tr (LocalData) 的范围,该范围不可用!要访问相同的范围,您需要将两个 TR 包装在 tbody 中。
像这样 <tbody ng-repeat="LocalData in SearchOrdersData"> ... </tbody>
我创建了 fiddle。希望对你有帮助。
我是 AngularJS 的初学者。
我的问题是如何使用 expand/collapse 功能以 table 格式显示 Parent/Sub 级数组记录(子行应在展开父行时显示)AngularJS.
我已经完成了静态编码,它显示所有记录默认展开而不使用 AngularJS,如下图所示。
我想在页面加载时默认仅显示父记录,然后如果使用扩展任何父记录(行),则应只扩展子行。
我的 Json 是:
var jsondata = [ { 项目名称:"product1", orderNumber:123, 订单详细信息:[ { 项目名称:"Sub Item 1", 项目代码:"code1" },{ 项目名称:"Sub Item 2", 项目代码:"code2" } ] },{ 项目名称:"product2", orderNumber:1223, 订单详细信息:[ { 项目名称:"Sub Item 3", 项目代码:"code3" },{ 项目名称:"Sub Item 4", 项目代码:"code4" },{ 项目名称:"Sub Item 1", 项目代码:"code1" },{ 项目名称:"Sub Item 6", 项目代码:"code6" } ] },{ 项目名称:"product3", orderNumber:1123 } ];
最初我写了下面的代码,它没有按预期工作:
<table class="table">
<thead>
<tr class="table-blue-header">
<th style="width:20px;"></th>
<th><a href="javascript:;">Item Name</a></th>
<th><a href="javascript:;">Order Number</a></th>
</tr>
</thead>
<tr ng-repeat="LocalData in SearchOrdersData">
<th style="width:20px;"><a ng-click="LocalData.visible = !LocalData.visible" href="javascript:;">»</a></th>
<td>{{LocalData.itemName}}</td>
<td>{{LocalData.orderNumber}}</td>
</tr>
<tr ng-if="LocalData.visible" ng-repeat="orderdetailsdata in data = (LocalData.orderDetails)">
<td colspan=3><table class="table table-bordered">
<thead>
<tr class="table-blue-header">
<td>Item Name</td>
<td>Item Code</td>
</tr>
</thead>
<tbody>
<tr ng-show="data.length">
<td>{{orderdetailsdata.itemName}}</td>
<td>{{orderdetailsdata.itemCode}}</td>
</tr>
<tr ng-hide="data.length">
<td colspan="10">No Child records to display.</td>
</tr>
</tbody>
</table></td>
</tr>
</table>
谁能帮我解决这个问题?
您试图在下一个 tr 中访问 tr (LocalData) 的范围,该范围不可用!要访问相同的范围,您需要将两个 TR 包装在 tbody 中。
像这样 <tbody ng-repeat="LocalData in SearchOrdersData"> ... </tbody>
我创建了 fiddle。希望对你有帮助。