使用 AngularJS 1.6 创建具有多个输入的多个表
Create multiple tables with multiple inputs using AngularJS 1.6
我正在处理 Angular JS 任务,我需要从文本框中获取输入并形成具有两个输入 fields.Consider 行和列的行
在其中输入值后,形成了两个输入字段。应形成包含行和列的 Table。
这里有一个fiddlelink
https://jsfiddle.net/iamsaisanthosh/r1zync3g/
var app = angular.module('app', []);
app.controller('ctrl', function($scope) {
$scope.table = [];
$scope.cols = [];
$scope.rows = [];
$scope.arr = [];
$scope.arh = [];
$scope.trr = [];
$scope.makeArray = function() {
$scope.trr.length = 0;
for (var k = 0; k < parseInt($scope.table); k++) {
$scope.trr.push(k);
}
$scope.arr.length = 0;
for (var i = 0; i < parseInt($scope.rows); i++) {
$scope.arr.push(i);
}
$scope.arh.length = 0;
for (var j = 0; j < parseInt($scope.cols); j++) {
$scope.arh.push(j);
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="ctrl">
<input ng-model="table" type="text" ng-change="makeArray()" />
<table>
<tr ng-repeat="o in trr">
<td> <input ng-model="rows[$index]" type="text" ng-change="makeArray()" />
</td>
<td> <input ng-model="cols[$index]" type="text" ng-change="makeArray()" /></td>
</tr>
</table>
<div>
<table>
<tr ng-repeat="o in arr">
<td ng-repeat="o in arh">Col</td>
</tr>
</table>
</div>
</div>
</div>
我可以从文本框中获取输入并形成行。
在形成的输入字段中输入值后,正在形成带有输入值的 table。
Table 表格只针对第一行输入的值
问题是我不能超过一行
第二行输入值无法形成 Table
在上面fiddle
在文本字段中输入 2
2行将形成两个输入字段
在第一行输入框分别输入 3 和 4
可以看到3行4列的table
当我在第二行输入值时,我需要同样的事情发生
第二个 table 应该形成
//This piece is wrong right, $scope.rows, $scope.cols are not Strings/Numbers they are arrays and suppose to contain each tabs rows and columns index wise.
$scope.arr.length = 0;
for (var i = 0; i < parseInt($scope.rows); i++) {
$scope.arr.push(i);
}
$scope.arh.length = 0;
for (var j = 0; j < parseInt($scope.cols); j++) {
$scope.arh.push(j);
}
var app = angular.module('app', []);
app.controller('ctrl', function($scope) {
$scope.table = 0;
$scope.cols = [];
$scope.rows = [];
$scope.makeArray = function() {
if ($scope.table) {
return new Array(parseInt($scope.table));
} else {
return new Array(0);
}
}
$scope.getRowsCount = function ($index) {
if ($scope.rows[$index]) {
return new Array(parseInt($scope.rows[$index]));
} else {
return new Array(0);
}
}
$scope.getColsCount = function ($index) {
if ($scope.cols[$index]) {
return new Array(parseInt($scope.cols[$index]));
} else {
return new Array(0);
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="ctrl">
<input ng-model="table" type="text" />
<table>
<tr ng-repeat="t in makeArray() track by $index">
<td> <input ng-model="rows[$index]" type="text" />
</td>
<td> <input ng-model="cols[$index]" type="text" /></td>
</tr>
</table>
<div>
<table ng-repeat="t in makeArray() track by $index">
<tr ng-repeat="r in getRowsCount($index) track by $index">
<td ng-repeat="c in getColsCount($parent.$index) track by $index">Col</td>
</tr>
</table>
</div>
</div>
</div>
我正在处理 Angular JS 任务,我需要从文本框中获取输入并形成具有两个输入 fields.Consider 行和列的行 在其中输入值后,形成了两个输入字段。应形成包含行和列的 Table。 这里有一个fiddlelink
https://jsfiddle.net/iamsaisanthosh/r1zync3g/
var app = angular.module('app', []);
app.controller('ctrl', function($scope) {
$scope.table = [];
$scope.cols = [];
$scope.rows = [];
$scope.arr = [];
$scope.arh = [];
$scope.trr = [];
$scope.makeArray = function() {
$scope.trr.length = 0;
for (var k = 0; k < parseInt($scope.table); k++) {
$scope.trr.push(k);
}
$scope.arr.length = 0;
for (var i = 0; i < parseInt($scope.rows); i++) {
$scope.arr.push(i);
}
$scope.arh.length = 0;
for (var j = 0; j < parseInt($scope.cols); j++) {
$scope.arh.push(j);
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="ctrl">
<input ng-model="table" type="text" ng-change="makeArray()" />
<table>
<tr ng-repeat="o in trr">
<td> <input ng-model="rows[$index]" type="text" ng-change="makeArray()" />
</td>
<td> <input ng-model="cols[$index]" type="text" ng-change="makeArray()" /></td>
</tr>
</table>
<div>
<table>
<tr ng-repeat="o in arr">
<td ng-repeat="o in arh">Col</td>
</tr>
</table>
</div>
</div>
</div>
我可以从文本框中获取输入并形成行。 在形成的输入字段中输入值后,正在形成带有输入值的 table。 Table 表格只针对第一行输入的值 问题是我不能超过一行
第二行输入值无法形成 Table 在上面fiddle 在文本字段中输入 2 2行将形成两个输入字段 在第一行输入框分别输入 3 和 4 可以看到3行4列的table 当我在第二行输入值时,我需要同样的事情发生 第二个 table 应该形成
//This piece is wrong right, $scope.rows, $scope.cols are not Strings/Numbers they are arrays and suppose to contain each tabs rows and columns index wise.
$scope.arr.length = 0;
for (var i = 0; i < parseInt($scope.rows); i++) {
$scope.arr.push(i);
}
$scope.arh.length = 0;
for (var j = 0; j < parseInt($scope.cols); j++) {
$scope.arh.push(j);
}
var app = angular.module('app', []);
app.controller('ctrl', function($scope) {
$scope.table = 0;
$scope.cols = [];
$scope.rows = [];
$scope.makeArray = function() {
if ($scope.table) {
return new Array(parseInt($scope.table));
} else {
return new Array(0);
}
}
$scope.getRowsCount = function ($index) {
if ($scope.rows[$index]) {
return new Array(parseInt($scope.rows[$index]));
} else {
return new Array(0);
}
}
$scope.getColsCount = function ($index) {
if ($scope.cols[$index]) {
return new Array(parseInt($scope.cols[$index]));
} else {
return new Array(0);
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="ctrl">
<input ng-model="table" type="text" />
<table>
<tr ng-repeat="t in makeArray() track by $index">
<td> <input ng-model="rows[$index]" type="text" />
</td>
<td> <input ng-model="cols[$index]" type="text" /></td>
</tr>
</table>
<div>
<table ng-repeat="t in makeArray() track by $index">
<tr ng-repeat="r in getRowsCount($index) track by $index">
<td ng-repeat="c in getColsCount($parent.$index) track by $index">Col</td>
</tr>
</table>
</div>
</div>
</div>