AngularJS的ng-repeat-start ng-repeat-end与表和rowspan
AngularJS ng-repeat-start ng-repeat-end with table and rowspan
我面临的问题,而使动态表与动态行span。我的json是一个对象数组。元素对象也是数组。元素数组应该作为动态rowspan的编号出现。我有一个json,像:
{
"roleTypes": [
{
"roleType": {
"name": "SOA Role"
},
"rates": [
{
"rateType": {
"name": "new Rate"
},
"hourlyRate": {
"value": 1222
},
"internalRate": {
"value": 433
}
},
{
"rateType": {
"name": "myRate"
},
"hourlyRate": {
"value": 1350
},
"internalRate": {
"value": 1650
}
}
]
},
{
"roleType": {
"name": "SOA Role"
},
"rates": [
{
"rateType": {
"name": "new Rate"
},
"hourlyRate": {
"value": 1222
},
"internalRate": {
"value": 433
}
},
{
"rateType": {
"name": "myRate"
},
"hourlyRate": {
"value": 1350
},
"internalRate": {
"value": 1650
}
}
]
},
{
"roleType": {
"name": "AngularJs Developer"
}
}
]
}
如果我想使用ng-repeat-start和ng-repeat-end,并创建如下表结构:
roleType------ | rateType-----hourlyRate--------internalRate
---------------------------------------------------------------------------
| new Rate 1222 433
---------------------------------------------------
SOA Role | myRate 1350 1650
---------------------------------------------------------------------------
| new Rate 1222 433
---------------------------------------------------
AngularJs Developer |myRate 1350 1650
---------------------------------------------------------------------------
我正在努力获得动态行span。请查看是否有人可以帮助。
Pankaj提到的是正确的,但我认为你需要一个更动态的rowspan
表。你可以像下面的例子那样做:
var app = angular.module("sa", []);
app.controller("FooController", function($scope) {
$scope.data = {
"roleTypes": [{
"roleType": {
"name": "SOA Role"
},
"rates": [{
"rateType": {
"name": "new Rate"
},
"hourlyRate": {
"value": 1222
},
"internalRate": {
"value": 433
}
}, {
"rateType": {
"name": "myRate"
},
"hourlyRate": {
"value": 1350
},
"internalRate": {
"value": 1650
}
}]
}, {
"roleType": {
"name": "AngularJs Developer"
},
"rates": [{
"rateType": {
"name": "new Rate"
},
"hourlyRate": {
"value": 123
},
"internalRate": {
"value": 1431
}
}, {
"rateType": {
"name": "myRate"
},
"hourlyRate": {
"value": 443
},
"internalRate": {
"value": 1930
}
}, {
"rateType": {
"name": "otherRate"
},
"hourlyRate": {
"value": 343
},
"internalRate": {
"value": 2000
}
}]
}]
};
});
td[rowspan] {
vertical-align: middle !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<div ng-app="sa" ng-controller="FooController">
<table class="table table-bordered">
<thead>
<tr>
<th>roleType</th>
<th>rateType</th>
<th>hourlyRate</th>
<th>internalRate</th>
</tr>
</thead>
<tbody>
<tr ng-repeat-start="role in data.roleTypes">
<td rowspan="{{role.rates.length}}">{{role.roleType.name}}</td>
<!-- Display the first rate in the same "tr" -->
<td>{{role.rates[0].rateType.name}}</td>
<td>{{role.rates[0].hourlyRate.value}}</td>
<td>{{role.rates[0].internalRate.value}}</td>
</tr>
<!-- Now display the other rates in different "tr" excluding first -->
<!-- You can also make a subarray from here excluding the 1st rate -->
<tr ng-repeat="rate in role.rates" ng-if="!$first" ng-repeat-end>
<td>
{{rate.rateType.name}}
</td>
<td>
{{rate.hourlyRate.value}}
</td>
<td>
{{rate.internalRate.value}}
</td>
</tr>
</tbody>
</table>
</div>
你可以像下面这样用ng-repeat
除以tbody
<table>
<tbody ng-repeat="role in roleTypes.roleTypes">
<tr ng-repeat="rate in role.rates">
<td ng-if="$first" rowspan="2">{{role.roleType.name}}</td>
<td>{{rate.rateType.name}}</td>
<td>{{rate.hourlyRate.value}}</td>
<td>{{rate.internalRate.value}}</td>
<tr>
</tbody>
</table>
Plunkr
相关文章:
- ng映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- AngularJS:ng之后,重复$scope值未按预期更新
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng init中的表达式无法使用ng repeat
- ng更改事件不适用于Dropdown
- ng视图外的链接重定向到ng视图内的页面
- ng应用程序使脚本无限运行
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- ng隐藏和ng显示无法正常工作
- 从ng模板访问作用域
- 防止ng重复中的重复值(AngularJS)
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- AngularJs列表ng单击以选择选项转换
- 如何使用AngularJs禁用ng选项中的选项
- 用ng-repeat在表中使用Angular js动态更改rowspan值
- AngularJS的ng-repeat-start ng-repeat-end与表和rowspan