这是我的控制器功能,用于从服务器获取数据。
function carsController($http, $scope, $timeout) {
var vm = this;
vm.getCarData = getCarData;
function getCarData(){
$http.get('/api/getData').then(function (response) {
console.log(response.data.message);
vm.list = response.data.message;
});
}
}
这是返回的数据。
{
"message":[
{
"emp_id":1,
"emp_name":"toyota",
"city":"city1",
"nic_no":4554
},
{
"emp_id":2,
"emp_name":"sunny",
"city":"city2",
"nic_no":57412
},
{
"emp_id":3,
"emp_name":"tata",
"city":"city3",
"nic_no":1234
}
]
}
和html代码显示数据。我正在使用 carsController作为汽车
<div class="row" data-ng-init="cars.getCarData()">
<div class="panel panel-default">
<table class="table table-bordered table-hover">
<tr>
<th>Name</th>
<th>Pages</th>
</tr>
<tr ng:repeat="vehicle in cars.list track by $index">
<td>{{vehicle.emp_name}}</td>
<td>{{vehicle.city}}</td>
</tr>
</table>
</div>
</div>
而不是显示数据,UI在页面加载时显示100多个空行。
可能是什么问题?
已更新
如果我手动设置如下值,这很有效。
vm.list = [
{
"emp_id":1,
"emp_name":"toyota",
"city":"city1",
"nic_no":4554
},
{
"emp_id":2,
"emp_name":"sunny",
"city":"city2",
"nic_no":57412
},
{
"emp_id":3,
"emp_name":"tata",
"city":"city3",
"nic_no":1234
}
];
答案 0 :(得分:0)
问题是,正如您在已发布的控制台日志中所看到的,response.data.message是一个对象。不是数组。 试试这个
vm.list = response.data.message.message;
以下将绑定消息数组
答案 1 :(得分:0)
你有两个问题。
您正在将vm.list
分配给response.data.message
,正如NJ_93指出的那样,它是一个对象。使用
vm.list = response.data.message.message;
您没有从控制器调用getCarData()函数。所以从不提取数据。
答案 2 :(得分:-1)
您确定问题不是因为您使用了两个不同的对象。 vm.list
用于从$http
接收数据并使用cars.list进行ng-repeat
将数据存储到$scope.vm.list
并在用户界面中使用ng-repeat="cars in vm.list track by $index
&#34;