повторить в таблице, используя Angularjs

0

Я использую Array [{"cell":["jobcode","resume_number","score"]},{"cell":["jc100","rc1",80]},{"cell":["jc100","rc123",70]}]

И я придумал код javascript как

var cell=response;
for (var i in cell) {
    for(var j in cell[i])
    {
        console.log(cell[i][j]);
        profiles.push(cell[i][j]);
        $scope.profiles=profiles;
        for(k in cell[i][j])
        {
            resumes.push(cell[i][j]);
            console.log("resume length"+resumes.length);
            $scope.columns=resumes;
            console.log(JSON.stringify($scope.columns));
        }
    }
}

И html

<tr ng-repeat="profile in profiles track by $index" >
  <td ng-repeat="col in columns track by $index">
    <label >{{col.cell}}</label>
  </td>
</tr>

И в конечном итоге введите описание изображения здесь

Я не собираюсь идти дальше. Мне нужно организовать эти данные в виде таблицы. Пожалуйста помоги.

  • 0
    Ваш массив не выглядит идеально
  • 0
    Этот массив на самом деле является результатом Apache POI-кода для чтения файла Excel в формате json, как в stackoverflow.com/questions/11343931/converting-excel-to-json
Показать ещё 4 комментария

2 ответа

0

Попробуйте следующий код. Возьмите заголовок как отдельную часть из json и сначала загоните заголовок, а затем сначала начните ng-repeat из index first

<table border="1">
    <tr>
        <td>
            {{columns[0].cell[0]}}            
        </td>
        <td>
            {{columns[0].cell[1]}}            
        </td>
        <td>
            {{columns[0].cell[2]}}         
        </td>
    </tr>

    <tr ng-repeat="col in columns" ng-if="$index>0">
        <td>
            {{columns[$index].cell[0]}}            
        </td>
        <td>
            {{columns[$index].cell[1]}}            
        </td>
        <td>
            {{columns[$index].cell[2]}}         
        </td>
    </tr>
</table>
  • 0
    Мне нужен общий код. Файлы Excel, которые я получаю, будут различаться по количеству столбцов.
0

Ваши данные содержат массив объектов, который содержит другой массив. Поэтому вам нужно извлечь каждый объект из внешнего массива, а затем перейти к внутреннему.

Если вам нужны эти данные, только чтобы упорядочить их в таблице, вы можете просто использовать следующий код:

Код вашего контроллера:

$scope.cell = response;

Ваш HTML:

<tr ng-repeat="profile in cell track by $index" >
    <td ng-repeat="col in profile.cell track by $index">
        <label >{{col}}</label>
    </td>
</tr>

Если вам нужно сохранить каждый объект массива, вы можете использовать цикл forEach:

Ваш код контроллера:

var cell=[{"cell":["jobcode","resume_number","score"]}, {"cell":["jc100","rc1",80]}, {"cell":["jc100","rc123",70]}];

angular.forEach(cell, function(data){
    $scope.profiles.push(data);
});

Ваш HTML:

<table>
    <tr ng-repeat="profile in profiles track by $index" >
        <td ng-repeat="col in profile.cell track by $index">
            <label >{{col}}</label>
        </td>
    </tr>
</table>
  • 0
    Это действительно первое, что я должен сделать, и это подойдет. Но это не похоже на работу здесь!
  • 0
    Есть ли ошибка, которую вы получаете?
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню