обо всем по порядку.Вы объявили свою переменную train
в своей функции, поэтому не можете получить к ней доступ к своему контроллеру.Не очень хорошая идея сделать его глобальной переменной.Поскольку вы используете angularjs, вы можете использовать одну из его основных функций под названием service
(см. Это в моем коде ниже и посмотрите, как я его использую) .
Во-вторых, вы всегда должны делать так, чтобы ваш <th>
считал так же, как ваш <td>
.В вашем коде у вас есть 3 <th>
и 5 <td>
В-третьих, вы вызываете свойства, которые не объявлены в вашем объекте.Всегда используйте свойства, которые вы объявили в своем объекте.
Вы можете запустить мой код ниже, чтобы проверить правильность вывода
var app = angular.module('myApp', []);
app.service('TrainService', function() {
var train = [{
"TrainNo": "11043",
"TrainName": "MADURAI EXPRESS",
"Source": "LTT",
"ArrivalTime": "03:50",
"Destination": "PUNE",
"DepartureTime": "00:15",
"TravelTime": "03:35H",
"TrainType": "EXP"
},
{
"TrainNo": "16533",
"TrainName": "BGKT SBC EXPRES",
"Source": "KYN",
"ArrivalTime": "04:10",
"Destination": "PUNE",
"DepartureTime": "01:05",
"TravelTime": "03:05H",
"TrainType": "EXP"
}
];
return { getTrain: getTrain };
function getTrain() {
return train;
}
});
app.controller('Ctrl', function($scope, TrainService) {
$scope.names = TrainService.getTrain();
});
<!DOCTYPE html>
<html>
<style>
table,
th,
td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f1f1f1;
}
table tr:nth-child(even) {
background-color: #ffffff;
}
</style>
<script src="https://code.jquery.com/jquery-3.0.0.js">
</script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js">
</script>
<body>
<div ng-app="myApp" ng-controller="Ctrl">
<table>
<tr>
<th>TrainNo</th>
<th>Name</th>
<th>Source</th>
<th>Destination</th>
<th>TrainType</th>
</tr>
<tr ng-repeat="x in names">
<td>{{x.TrainNo}}</td>
<td>{{x.TrainName}}</td>
<td>{{x.Source}}</td>
<td>{{x.Destination}}</td>
<td>{{x.TrainType}}</td>
</tr>
</table>
</div>
</body>
</html>