与复杂的td单元格将数据插入表 [英] Insert data into table with complicated td cells
问题描述
我在控制器持有应在表中传递的数据的变量。还有在TD细胞值1到20。我想要做的是当seatno为1号应该除了1号TD手机中显示的名称。当没有可用seatno或命名之外的值td单元格应为空。像这样: http://s4.postimg.org/carj4wt4d/Screenshot_from_2015_01_12_14_36_08.jpg
我所做的迄今:
VAR应用= angular.module(对myApp,[]);\r
app.controller('检查',函数($范围){\r
$ scope.totalSeats = 20;\r
$ scope.seatArr = [];\r
对于(VAR I = 1; I< = $ scope.totalSeats;我++){\r
$ scope.seatArr.push(ⅰ);\r
}\r
\r
的console.log($ scope.seatsArr);\r
\r
变种tdCells = [];\r
对于(VAR I = 0; I< $ scope.seatArr.length;我++){\r
如果(ⅰ%8 == 0)tdCells.push([]);\r
tdCells [tdCells.length-1] .push($ scope.seatArr [I]);\r
}\r
返回$ scope.tdCells = tdCells;\r
\r
$ scope.myData = [\r
{\r
seatno:'1',\r
名称:媚兰,\r
ticketnNo:abc456,\r
insuranceNo:34\r
},\r
{\r
seatno:'2',\r
名称:'约瑟法,\r
ticketnNo:abc231,\r
insuranceNo:90\r
},\r
{\r
seatno:'17',\r
名称:露娜玛丽',\r
ticketnNo:abc324,\r
insuranceNo:35\r
},\r
{\r
seatno:5,\r
名称:亚娜,\r
ticketnNo:abc221,\r
insuranceNo:91\r
},\r
{\r
seatno:'18',\r
名称:'斯科特·图克,\r
ticketnNo:abc453,\r
insuranceNo:36\r
},\r
{\r
seatno:'6',\r
名称:'Malanies桑托斯,\r
ticketnNo:abc241,\r
insuranceNo:93\r
},\r
{\r
seatno:'20',\r
名称:露娜玛丽Landiola',\r
ticketnNo:abc322,\r
insuranceNo:39\r
},\r
{\r
seatno:'6',\r
名称:'伊丽莎,\r
ticketnNo:abc222,\r
insuranceNo:92\r
},\r
];\r
});
\r
&LT;脚本SRC =https://ajax.googleapis.com/ajax /libs/angularjs/1.2.23/angular.min.js\"></script>\r
\r
&LT;机身NG-应用=对myAppNG控制器=检查&GT;\r
&LT;表边框=1WIDTH =100%&GT;\r
&LT;跨度COLGROUP =7&GT;&LT; / COLGROUP&GT;\r
&LT;&TBODY GT;\r
&LT; TR NG重复=TR在tdCells&GT;\r
&LT; TD NG重复=TD在TR&GT;\r
{{TD}}\r
&LT;! - 经过七年的迭代一个新的`&LT; TR&GT;`应该交锋 - &GT;\r
&LT; / TD&GT;\r
&LT; / TR&GT;\r
&LT; / TBODY&GT;\r
&LT; /表&gt;
\r
感谢。
您可以将数据重新排列,以这样的事情,直接与所有需要的参数工作:
VAR应用= angular.module(对myApp,[]);\r
app.controller('检查',函数($范围){\r
$ scope.totalSeats = 20;\r
$ scope.seatArr = [];\r
对于(VAR I = 1; I&LT; = $ scope.totalSeats;我++){\r
$ scope.seatArr.push(ⅰ);\r
}\r
\r
的console.log($ scope.seatsArr);\r
\r
$ scope.myData = [{\r
seatno:'1',\r
名称:媚兰,\r
ticketnNo:abc456,\r
insuranceNo:34\r
},{\r
seatno:'2',\r
名称:'约瑟法,\r
ticketnNo:abc231,\r
insuranceNo:90\r
},{\r
seatno:'17',\r
名称:露娜玛丽',\r
ticketnNo:abc324,\r
insuranceNo:35\r
},{\r
seatno:5,\r
名称:亚娜,\r
ticketnNo:abc221,\r
insuranceNo:91\r
},{\r
seatno:'18',\r
名称:'斯科特·图克,\r
ticketnNo:abc453,\r
insuranceNo:36\r
},{\r
seatno:'6',\r
名称:'Malanies桑托斯,\r
ticketnNo:abc241,\r
insuranceNo:93\r
},{\r
seatno:'20',\r
名称:露娜玛丽Landiola',\r
ticketnNo:abc322,\r
insuranceNo:39\r
},{\r
seatno:'6',\r
名称:'伊丽莎,\r
ticketnNo:abc222,\r
insuranceNo:92\r
}];\r
\r
变种tdCells = [];\r
对于(VAR I = 0; I&LT; $ scope.seatArr.length;我++){\r
如果(I%7 == 0)\r
tdCells.push([]);\r
VAR数据= $ scope.seatArr [I]\r
为(在$ scope.myData变种D){\r
如果($ scope.myData [D]。.seatno == $ scope.seatArr [I]){\r
数据= $ scope.myData [D]。。名称;\r
打破;\r
}\r
}\r
tdCells [tdCells.length - 1] .push(数据);\r
}\r
$ scope.rows = tdCells;\r
\r
\r
});
\r
TD {\r
宽度:10%\r
}
\r
&LT;脚本SRC =https://ajax.googleapis.com/ajax /libs/angularjs/1.2.23/angular.min.js\"></script>\r
\r
&LT;机身NG-应用=对myAppNG控制器=检查&GT;\r
&LT;表边框=1WIDTH =100%&GT;\r
&LT;跨度COLGROUP =7&GT;&LT; / COLGROUP&GT;\r
&LT;&TBODY GT;\r
&LT; TR NG重复=TR行&GT;\r
&LT; TD NG重复=TD在TR&GT;\r
{{TD}}\r
&LT; / TD&GT;\r
&LT; / TR&GT;\r
&LT; / TBODY&GT;\r
&LT; /表&gt;\r
&LT; /身体GT;
\r
看到从注释的版本后:是的,这可能是最好的有两个表。也许最简单的将是筛选 NG-重复
在每个表中。
I have a variable in controller that holds the data which should be passed in the table. There are value in td cells 1 to 20. I want to do is when the seatno is number 1 the name should be displayed besides the number 1 td cell. And when there is no available seatno or name the td cells besides the value should be blank. Like this: http://s4.postimg.org/carj4wt4d/Screenshot_from_2015_01_12_14_36_08.jpg
What I've done so far is:
var app=angular.module("myApp",[]);
app.controller('check', function($scope){
$scope.totalSeats=20;
$scope.seatArr = [];
for (var i=1; i <= $scope.totalSeats; i++) {
$scope.seatArr.push(i);
}
console.log($scope.seatsArr);
var tdCells = [];
for (var i = 0; i < $scope.seatArr.length; i++ ) {
if (i % 8 == 0) tdCells.push([]);
tdCells[tdCells.length-1].push($scope.seatArr[i]);
}
return $scope.tdCells = tdCells;
$scope.myData = [
{
seatno:'1',
name:'Melanie',
ticketnNo:"abc456",
insuranceNo:34
},
{
seatno:'2',
name:'JOsefa',
ticketnNo:"abc231",
insuranceNo:90
},
{
seatno:'17',
name:'Luna Marie',
ticketnNo:"abc324",
insuranceNo:35
},
{
seatno:'5',
name:'Jana',
ticketnNo:"abc221",
insuranceNo:91
},
{
seatno:'18',
name:'Scott Tooker',
ticketnNo:"abc453",
insuranceNo:36
},
{
seatno:'6',
name:'Malanies Santos',
ticketnNo:"abc241",
insuranceNo:93
},
{
seatno:'20',
name:'Luna Marie Landiola',
ticketnNo:"abc322",
insuranceNo:39
},
{
seatno:'6',
name:'Eliza',
ticketnNo:"abc222",
insuranceNo:92
},
];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp" ng-controller="check">
<table border ="1" width="100%">
<colgroup span="7"></colgroup>
<tbody>
<tr ng-repeat="tr in tdCells">
<td ng-repeat="td in tr">
{{ td }}
<!-- After seven iterations a new `<tr>` should be aded -->
</td>
</tr>
</tbody>
</table>
Thanks.
You can rearrange the data to something like this, working directly with all the needed parameters:
var app = angular.module("myApp", []);
app.controller('check', function($scope) {
$scope.totalSeats = 20;
$scope.seatArr = [];
for (var i = 1; i <= $scope.totalSeats; i++) {
$scope.seatArr.push(i);
}
console.log($scope.seatsArr);
$scope.myData = [{
seatno: '1',
name: 'Melanie',
ticketnNo: "abc456",
insuranceNo: 34
}, {
seatno: '2',
name: 'JOsefa',
ticketnNo: "abc231",
insuranceNo: 90
}, {
seatno: '17',
name: 'Luna Marie',
ticketnNo: "abc324",
insuranceNo: 35
}, {
seatno: '5',
name: 'Jana',
ticketnNo: "abc221",
insuranceNo: 91
}, {
seatno: '18',
name: 'Scott Tooker',
ticketnNo: "abc453",
insuranceNo: 36
}, {
seatno: '6',
name: 'Malanies Santos',
ticketnNo: "abc241",
insuranceNo: 93
}, {
seatno: '20',
name: 'Luna Marie Landiola',
ticketnNo: "abc322",
insuranceNo: 39
}, {
seatno: '6',
name: 'Eliza',
ticketnNo: "abc222",
insuranceNo: 92
}, ];
var tdCells = [];
for (var i = 0; i < $scope.seatArr.length; i++) {
if (i % 7 == 0)
tdCells.push([]);
var data = $scope.seatArr[i];
for (var d in $scope.myData) {
if ($scope.myData[d].seatno == $scope.seatArr[i]) {
data = $scope.myData[d].name;
break;
}
}
tdCells[tdCells.length - 1].push(data);
}
$scope.rows = tdCells;
});
td {
width: 10%
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp" ng-controller="check">
<table border="1" width="100%">
<colgroup span="7"></colgroup>
<tbody>
<tr ng-repeat="tr in rows">
<td ng-repeat="td in tr">
{{ td }}
</td>
</tr>
</tbody>
</table>
</body>
After seeing the version from the comments: yes, it might be the best to have two tables. Probably the easiest would be to filter the ng-repeat
in each table.
这篇关于与复杂的td单元格将数据插入表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!