说我有以下数据结构
{
'Key 1': {
'Value 1': ['a', 'b', 'c'],
'Value 2': ['d', 'e']
},
'Key 2': {
'Value 3': ['f'],
'Value 4': ['g', 'h']
}
}
如何使用AngularJS在类似于以下的表格中呈现它:
|-------|---------|---|
| Key 1 | Value 1 | a |
| | |---|
| | | b |
| | |---|
| | | c |
| |---------|---|
| | Value 2 | d |
| | |---|
| | | e |
|-------|---------|---|
| Key 2 | Value 3 | f |
| |---------|---|
| | Value 4 | g |
| | |---|
| | | h |
|-------|---------|---|
按键是通过完成的rowspan
。
如果您确实确实需要使用rowspan
s进行处理,这是一种处理方法,除非您是作者(对不起),否则它很难完成并且几乎不可能阅读/关注,但是可以使用。您只需要夫妇$filter
的支持
像这样:
angular.module('testApp', [])
.controller('testController', function ($scope) {
$scope.testData = {
'Key 1': {
'Value 1': ['a', 'b', 'c'],
'Value 2': ['d', 'e']
},
'Key 2': {
'Value 3': ['f'],
'Value 4': ['g', 'h']
}
};
})
.filter('nNestedElements', function(){
var nNestedElements = function(collection, currentLevel, stopLevel){
var total = 0;
if(stopLevel==currentLevel){
if(Object.prototype.toString.call(collection) === '[object Array]')
total += collection.length;
else
total += Object.keys(collection);
}else{
angular.forEach(collection, function(value){
total += nNestedElements(value, currentLevel+1, stopLevel);
});
}
return total;
};
return function(object, level){
return nNestedElements(object, 0, level);
}
})
.filter('objectKeys', function(){
return function(object){
return Object.keys(object);
};
});
视图:
<table ng-app="testApp" ng-controller="testController">
<tr ng-repeat-start="(key, val) in testData">
<td rowspan="{{val|nNestedElements:1}}">{{key}}</td>
<td rowspan="{{val[(val|objectKeys)[0]].length}}">{{(val|objectKeys)[0]}}</td>
<td>{{ val[(val|objectKeys)[0]][0]}}</td>
</tr>
<tr ng-repeat="val2 in val[(val|objectKeys)[0]].slice(1)">
<td>{{val2}}</td>
</tr>
<tr ng-repeat-start="subkey in (val|objectKeys).slice(1)">
<td rowspan="{{val[subkey].length}}">{{subkey}}</td>
<td>{{ val[subkey][0] }}</td>
</tr>
<tr ng-repeat="value3 in val[subkey].slice(1)" ng-repeat-end>
<td>{{ value3 }}</td>
</tr>
<tr ng-repeat-end ng-if="false" ><td></td></tr>
</table>
从另一个角度看这3行: 编辑:注意表有2000列,是否可以动态创建一个类(或向类添加属性),例如在Scala中从外部文件加载字段名和类型?我知道case类仅限于22个字段 Edit2:还要注意,任何属性都可以有多行(rowkey除外),即orderid、name、amount、supplier、account和1995+其他列,所以为所有这些属性创建单独的“singleline”类是不可行的,我正
到现在为止,我们都是在Java文件中直接定义类。这样的类出现在包(package)的级别上。Java允许类的嵌套定义。 这里将讲解如何在一个类中嵌套定义另一个类。 嵌套 内部类 Java允许我们在类的内部定义一个类。如果这个类是没有static修饰符,那么这样一个嵌套在内部的类称为内部类(inner class)。 内部类被认为是外部对象的一个成员。在定义内部类时,我们同样有访问权限控制(publ
如何使用MapStruct映射嵌套列表? 下面是我的实体类: 我想把它映射到: 现在,我的映射器看起来像: 但它只映射“普通”属性,如Long、intger等,但它避免了嵌套列表。
问题内容: 如何跳过使用AngularJS验证嵌套表单的方法?即使子窗体无效,我也必须使其外部窗体有效。 在下面的示例中,外部格式应该有效(必须为true)。默认情况下不是。有选择吗? 代码(jsFiddle): 问题答案: 在Angular形式中可以嵌套。这意味着外部形式在所有子形式都有效时也有效。 因此,当内部变量之一无效时,无法使外部格式自动有效(通过键)。 尝试使用 演示版 从Angula
本文向大家介绍C++ 嵌套类/结构,包括了C++ 嵌套类/结构的使用技巧和注意事项,需要的朋友参考一下 示例 甲class或struct还可以包含另一个class/struct内部本身的定义,这被称为“嵌套类”; 在这种情况下,包含类称为“封闭类”。嵌套类定义被认为是封闭类的成员,但在其他方面则是单独的。 从封闭类的外部,可以使用范围运算符访问嵌套类。但是,在封闭类的内部,可以使用没有限定符的嵌套
4. 嵌套结构体 结构体也是一种递归定义:结构体的成员具有某种数据类型,而结构体本身也是一种数据类型。换句话说,结构体的成员可以是另一个结构体,即结构体可以嵌套定义。例如我们在复数的基础上定义复平面上的线段: struct segment { struct complex_struct start; struct complex_struct end; }; 从第 1 节 “复合类型与结构体”