【发布时间】:2017-04-05 23:48:18
【问题描述】:
我想在引导模式中实现一个表格,用于在 angularJS 中添加/删除动态行。这里是img中的例子:
很快,我想在最后一个按钮上添加很多行,但删除另一个后面的。如何在角度做?现在我这样做:
HTML
<table>
<tbody>
<tr ng-repeat="row in rows">
<td ng-bind-html="row.SocietyBorrower" angular-compile="nRows"> </td>
<td><label class="fs-label">{{fsFactory.getLabel(labels, pageName, 'Form_Label_NDGSocieta')}}</label></td>
<td>   </td>
<td ng-bind-html="row.NDGSociety" angular-compile="nRows"></td>
<td ng-show="row.LastRow">
<a href="#" ng-click="addNewRow()" class="fs-form-plus-minus"><span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span></a>
</td>
<td ng-hide="row.LastRow">
<a href="#" ng-click="deleteRow($index)" class="fs-form-plus-minus"><span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span></a>
</td>
</tr>
<tr><td></td></tr>
</tbody>
AngularJS
$scope.rows = [{
"SocietyBorrower": $sce.trustAsHtml("<input type=\"text\" ng-class=\"{'fs-form-invalid' : fsFactory.checkHasError(errors, 'SocietyBorrower')}\" name=\"SocietyBorrower\" class=\"fs-form-table-society\" ng-model=\"subItem.SocietyBorrower\" ng-model-options=\"defaultNgOptions\" />"),
"NDGSociety": $sce.trustAsHtml("<input type=\"text\" ng-class=\"{'fs-form-invalid' : fsFactory.checkHasError(errors, 'NDGSociety')}\" name=\"NDGSociety\" class=\"fs-form-table-ndg\" ng-model=\"subItem.NDGSociety\" ng-model-options=\"defaultNgOptions\" />"),
"LastRow": false
}];
$scope.nRows = $scope.rows.length;
$scope.addNewRow = function () {
$scope.rows.push({
"SocietyBorrower": $sce.trustAsHtml("<input type=\"text\" ng-class=\"{'fs-form-invalid' : fsFactory.checkHasError(errors, 'SocietyBorrower')}\" name=\"SocietyBorrower\" class=\"fs-form-table-society\" ng-model=\"subItem.SocietyBorrower\" ng-model-options=\"defaultNgOptions\" />"),
"NDGSociety": $sce.trustAsHtml("<input type=\"text\" ng-class=\"{'fs-form-invalid' : fsFactory.checkHasError(errors, 'NDGSociety')}\" name=\"NDGSociety\" class=\"fs-form-table-ndg\" ng-model=\"subItem.NDGSociety\" ng-model-options=\"defaultNgOptions\" />"),
"LastRow": true
});
$scope.nRows++;
};
$scope.deleteRow = function (index) {
if ($scope.nRows < 1) {
$scope.rows.splice(index, 1);
$scope.rows.push({
"SocietyBorrower": $sce.trustAsHtml("<input type=\"text\" ng-class=\"{'fs-form-invalid' : fsFactory.checkHasError(errors, 'SocietyBorrower')}\" name=\"SocietyBorrower\" class=\"fs-form-table-society\" ng-model=\"subItem.SocietyBorrower\" ng-model-options=\"defaultNgOptions\" />"),
"NDGSociety": $sce.trustAsHtml("<input type=\"text\" ng-class=\"{'fs-form-invalid' : fsFactory.checkHasError(errors, 'NDGSociety')}\" name=\"NDGSociety\" class=\"fs-form-table-ndg\" ng-model=\"subItem.NDGSociety\" ng-model-options=\"defaultNgOptions\" />")
});
} else {
$scope.rows.splice(index, 1);
$scope.nRows = $scope.rows.length;
}
};
有什么建议吗?如果最后一行,我尝试 ng-hide/ng-show 添加/删除按钮。正确的?显然,在开始时,第一行必须为空,并且只能使用添加按钮。 怎么做?非常感谢!
【问题讨论】:
-
请搜索一下,你会得到很多文章。这是一个shanidkv.com/blog/angularjs-dynamic-table-addremove-action
标签: javascript html angularjs twitter-bootstrap