이것은 내가 붙어있는 곳의 문제가 아닙니다. 좋은 연습과 성과에 대한 질문입니다. 내 코드가 제대로 작동하고 있습니다. 하지만이 작업을 수행하는 올바른 방법을 알고 싶습니다. 어쩌면 나는 이미 맞다. 시나리오와 코드를 살펴보고 나에게 올바른 방법을 제안하십시오.Angular js는 동시에 여러 테이블에서 데이터를 가져옵니다.
요구 사항 나는 데이터베이스에 약 20 테이블 근처에있는
, 때 사용자가 로그인하고 나는 모든 테이블에서 데이터를 표시 할 필요가 대시 보드 페이지로 이동합니다. 모든 데이터를 표시 할 필요가 없으므로 각 테이블에서 각도 $ http를 사용하여 25 개의 행을 가져 와서 대시 보드 페이지에 표시합니다.
코드
내 각도 JS 코드는 다음과 같습니다
$scope.$on('$viewContentLoaded', function (event) {
$scope.loadDashboardQue(event, '/route1/getDashboardData?user_id=123', 'table1');
$scope.loadDashboardQue(event, '/route2/getDashboardData?user_id=123', 'table2');
$scope.loadDashboardQue(event, '/route3/getDashboardData?user_id=123', 'table3');
$scope.loadDashboardQue(event, '/route4/getDashboardData?user_id=123', 'table4');
$scope.loadDashboardQue(event, '/route5/getDashboardData?user_id=123', 'table5');
$scope.loadDashboardQue(event, '/routeN/getDashboardData?user_id=123', 'tableN');
});
이제 loadDashboardQue 기능 해상력
$scope.loadDashboardQue = function (event, url, tableName) {
$http.get(url)
.success(function (response) {
if (response.status === 'success') {
//Assigning data to HTML table
if (tableName === 'table1') {
$scope.table1Data = response.data;
}
if (tableName === 'table2') {
$scope.table2Data = response.data;
}
if (tableName === 'table3') {
$scope.table3Data = response.data;
}
if (tableName === 'table4') {
$scope.table4Data = response.data;
}
if (tableName === 'table5') {
$scope.table5Data = response.data;
}
if (tableName === 'tableN') {
$scope.tableNData = response.data;
}
} else {
console.log("Something wrong while fetching data from table ", tableName);
}
})
.error(function (error) {
console.log("The error is :", err);
});
});
HTML 테이블
<table style="width:100%">
<tr>
<th>Nme</th>
<th>Id</th>
<th>Contact No</th>
</tr>
<!--Table1 Data-->
<tr ng-repeat="data in table1Data">
<td>{{ data.user_name }}</td>
<td>{{ data.user_id }}</td>
<td>{{ data.mobile }}</td>
</tr>
<!--Table2 Data-->
<tr ng-repeat="data in table2Data">
<td>{{ data.customerName }}</td>
<td>{{ data.customerId }}</td>
<td>{{ data.phone }}</td>
</tr>
<!--Table3 Data-->
<tr ng-repeat="data in table3Data">
<td>{{ data.student_name }}</td>
<td>{{ data.roll_no }}</td>
<td>{{ data.mobile }}</td>
.
.
.
<!--TableN Data-->
<tr ng-repeat="data in tableNData">
<td>{{ data.developer_name }}</td>
<td>{{ data.id }}</td>
<td>{{ data.mobile }}</td>
</tr>
</table>
각 테이블에서 열 이름이 다르다는 것을 볼 수 있으므로 모든 데이터를 단일 ng-repeat
에 표시 할 수는 없습니다. 그래서 각 테이블마다 별도의 ng-repeat
을 작성했습니다.
이 코드는 정상적으로 작동하지만 페이지로드가 시작될 때 일 때이 7 초 이상 걸리므로 성능에 현명한 걱정입니다. 그러므로 더 좋은 방법이 있다면 이것을 제안하십시오.
감사합니다.