我有一个json,在这个json中有一个要在<td>中迭代的数组。
我的功能就像我必须根据用户输入创建表。用户提供行数,输入列和输出列的输入。所以我有三个数组,即$ rootScope.input_columns,$ rootScope.output_columns和$ rootScope.rows,它们包含用户提供的用于创建表的数据。现在在input_columns中有一个数组,其中包含一些需要在行单元格上显示的信息。但是用我当前的代码,它给了我空白行。

Controller :

var app = angular.module('rulesApp');

app.controller('myController2', ['$scope', '$rootScope',function($scope, $rootScope){
var inputcol=[];
            $rootScope.input_col=$scope.no_of_input;
            $rootScope.output_col=$scope.no_of_output;
            $rootScope.rows=$scope.no_of_row;
            for(var i=0;i<$rootScope.input_col;i++){
                inputcol.push({
                    id: inputcol.length,
                    dropped: false,
                    dataType:'',
                    name:'',
                    type:'input',
                    path:'',
                    rowCellValue:[],
                    rowCellValueOutput:[]
                });
            }$rootScope.input_columns=inputcol;//here i get input_columns json, Similarly json are made for output_columns and rows
            $scope.statementSelected = function(branch, selected_branches) {
        if(branch.selected) {
            for(var i = 0; i < $rootScope.input_columns.length; i++) {
//Here i add an array inside input_columns.rowCellValue     $rootScope.input_columns[i].rowCellValue.push($rootScope.rows[i].rowCellValue);
                    }
})

添加input_columns的结构

javascript - 如何在特定标签内使用两个ng-repeat-LMLPHP

这是我的html代码:
<tbody>
    <tr ng-repeat="row in rows"><!--It iterates on row json -->
        <td><input type="checkbox"></td>
        <!--Here i want that in row cells input_columns.rowCellValue data gets populate on row cell for input column -->
        <td ng-repeat="col in input_columns.rowCellValue">{{(col == "") && "&lt;enter data&gt;" || (col.split("/")[3])}}</td>
        <!--Here i want that in row cells output_columns.rowCellValueOutput data gets populate on row cell for output column -->
        <td ng-repeat="col in output_columns.rowCellValueOutput" ng-click="openDialog($event)">{{(col == "") && "&lt;enter data&gt;" || (col.split("/")[3])}}</td>
    </tr>
</tbody>

我想要一个这样的结构
javascript - 如何在特定标签内使用两个ng-repeat-LMLPHP

但是我得到空白行
javascript - 如何在特定标签内使用两个ng-repeat-LMLPHP

请任何人可以帮助我完成此任务。是否存在我没​​有迭代input_columns的问题,所以我没有得到input_columns.rowCellValue值。如何获取表列中的input_columns.rowCellValue的值?无论如何,我是否可以使用两个ng重复,第一个ng-repeat我可以得到input_column值[input_column中的col],第二个ng-repeat我可以得到rowCellValue [col.rowCellValue]中的单元格。

我正在尝试一些解决方案,并想出了一种访问rowCellValue的方法:

这是修改后的html代码
<tbody>
        <tr ng-repeat="row in rows"><!--It iterates on row json -->
            <td><input type="checkbox"></td>
            <!--Here i want that in row cells input_columns.rowCellValue data gets populate on row cell for input column -->
<!--here with $index i am getting first value of rowCellValue in entire column can i iterate it with using rows length -->
            <td ng-repeat="col in input_columns">{{(col.rowCellValue[$index] == "") && "&lt;enter data&gt;" || (col.rowCellValue[$index].split("/")[3])}}</td>
            <!--Here i want that in row cells output_columns.rowCellValueOutput data gets populate on row cell for output column -->
            <td ng-repeat="col in output_columns" ng-click="openDialog($event)">{{(col.rowCellValueOuput[$index] == "") && "&lt;enter data&gt;" || (col.rowCellValueOutput[$index].split("/")[3])}}</td>

        </tr>
    </tbody>

这是我想要用于input_column的实际表:
javascript - 如何在特定标签内使用两个ng-repeat-LMLPHP

但是我得到这个:
javascript - 如何在特定标签内使用两个ng-repeat-LMLPHP

我可以使用行长而不是$ index来迭代col.rowCellValueOutput [$ index]吗?并针对每一列。如果是,请为此提出一些建议。

最佳答案

您是否尝试过将其放入JSON对象并遍历JSON。看起来您想要做的是,每次创建新行时,inputColoutputCol都将尝试输出每一行的所有内容。

//pseudo code
ng-repeat row in rows
    ng-repeat input in inputs
    ng-repeat output in outputs

每次循环rows时,所有inputsoutputs数据都会再次输出,使每一行都相同。

如果您制作了JSON对象并执行了类似的操作,
ng-repeat row in rows
    ng-repeat input in row.input
    ng-repeat output in row.output

您的JSON看起来像
var rows = [{ input: [ "row1", "col2" ], output: [ "col3", "col4" ] },
            { input: [ "row2", "col2" ], output: [ "col3", "col4" ] }];

09-07 15:28