如何在 ng-repeat 之后的每个 table 行中添加一个手动单元格?
How to add a manual cell in each table row after an ng-repeat?
我正在构建一个 table,其中包含 ng-repeat 遍历来自数据库的列表。这部分工作正常,但我想要一个复选框,让用户 select 删除哪些行。我还想在 table header 上有一个复选框,用作 select 全部按钮。
问题是,据我所知,ng-repeat 循环包含了相关行内的所有内容,使我无法在循环和行尾之间插入手动单元格。
有没有办法在循环和行尾之间添加一个额外的单元格,例如使用 ng-repeat-start 和 ng-repeat end?
这是我尝试的一个例子。很明显,这个没用。
<table>
<tr><th ng-repeat=" e in poistoavaimet">{{e}}</th></tr>
<tr ng-repeat="i in poistolista | filter:sukunimiVal | filter:etunimiVal">
<td ng-repeat-start=" key in poistoavaimet">{{i[key]}}</td>
<td ng-repeat-end>
<input type="checkbox" ng-model="poistovalinta.{{$index}}">
{{$index}}</input>
</td>
</tr>
</table>
poistoavaimet 包含从数组中提取的键。 Poistolista 是从中提取键的数组本身,它包含来自数据库的数据。 Poistovalinta 是复选框值的变量。 poistovalinta.{{$index}}
试图在 poistovalinta 数组中创建一个条目,该条目具有行索引的键。
我将添加一段代码,负责从控制器处理这些变量:
$scope.haePoistettavat = function(){
$http.get('/opiskelijahaku', {params: {'optio':2}})
.then(function(res){
$scope.poistolista = res.data.message;
$scope.poistoavaimet = Object.keys($scope.poistolista[0]);
$scope.adminLista = {};
$scope.adminLista['poisto'] = true;
}, function(error){
console.log(error)
});
}
此函数向服务器发送一个 http get,其中包含一个选项,告诉服务器 return 正确的列表。响应存储在 $scope.poistolista
中,密钥被提取到数组 $scope.poistoavaimet
中。 $scope.adminLista
包含 true/false 个值 link 到 ng-show 多个 objects。这个想法是当时只显示其中一个。这不是直接 link 问题。
感谢@RaphaMex 消除了我对 ng-repeat 工作原理的误解!
解决办法就是他说的。只需在重复后添加单元格即可。
这里是固定版本:
<table>
<tr><th ng-repeat=" e in poistoavaimet">{{e}}</th><th><input id="kaikki" type="checkbox" ng-model="kaikkiVal"></th></tr>
<tr ng-repeat="i in poistolista | filter:sukunimiVal | filter:etunimiVal">
<td ng-repeat=" key in poistoavaimet">{{i[key]}}</td>
<td><input type="checkbox" ng-model="poistovalinta"></td>
</tr>
</table>
我正在构建一个 table,其中包含 ng-repeat 遍历来自数据库的列表。这部分工作正常,但我想要一个复选框,让用户 select 删除哪些行。我还想在 table header 上有一个复选框,用作 select 全部按钮。
问题是,据我所知,ng-repeat 循环包含了相关行内的所有内容,使我无法在循环和行尾之间插入手动单元格。
有没有办法在循环和行尾之间添加一个额外的单元格,例如使用 ng-repeat-start 和 ng-repeat end?
这是我尝试的一个例子。很明显,这个没用。
<table>
<tr><th ng-repeat=" e in poistoavaimet">{{e}}</th></tr>
<tr ng-repeat="i in poistolista | filter:sukunimiVal | filter:etunimiVal">
<td ng-repeat-start=" key in poistoavaimet">{{i[key]}}</td>
<td ng-repeat-end>
<input type="checkbox" ng-model="poistovalinta.{{$index}}">
{{$index}}</input>
</td>
</tr>
</table>
poistoavaimet 包含从数组中提取的键。 Poistolista 是从中提取键的数组本身,它包含来自数据库的数据。 Poistovalinta 是复选框值的变量。 poistovalinta.{{$index}}
试图在 poistovalinta 数组中创建一个条目,该条目具有行索引的键。
我将添加一段代码,负责从控制器处理这些变量:
$scope.haePoistettavat = function(){
$http.get('/opiskelijahaku', {params: {'optio':2}})
.then(function(res){
$scope.poistolista = res.data.message;
$scope.poistoavaimet = Object.keys($scope.poistolista[0]);
$scope.adminLista = {};
$scope.adminLista['poisto'] = true;
}, function(error){
console.log(error)
});
}
此函数向服务器发送一个 http get,其中包含一个选项,告诉服务器 return 正确的列表。响应存储在 $scope.poistolista
中,密钥被提取到数组 $scope.poistoavaimet
中。 $scope.adminLista
包含 true/false 个值 link 到 ng-show 多个 objects。这个想法是当时只显示其中一个。这不是直接 link 问题。
感谢@RaphaMex 消除了我对 ng-repeat 工作原理的误解!
解决办法就是他说的。只需在重复后添加单元格即可。
这里是固定版本:
<table>
<tr><th ng-repeat=" e in poistoavaimet">{{e}}</th><th><input id="kaikki" type="checkbox" ng-model="kaikkiVal"></th></tr>
<tr ng-repeat="i in poistolista | filter:sukunimiVal | filter:etunimiVal">
<td ng-repeat=" key in poistoavaimet">{{i[key]}}</td>
<td><input type="checkbox" ng-model="poistovalinta"></td>
</tr>
</table>