我是新手,我正在尝试制作虚拟联系人列表。 我打印了从mongodb获取数据的日志,我可以在浏览器控制台中看到正确的数据,但是当我尝试在html文件中打印它时,它没有显示。
以下是摘录:
controller.js
var myApp = angular.module('myApp', []);
myApp.controller('AppCtrl', ['$scope', '$http', function($scope, $http){
$http.get('/contactlist').then(function(response){
console.log("I got the response");
console.log(response); //able to see correct data is fetched in the browser console
$scope.contactlist=response;
});
}])
我尝试打印此数据的表格:
<tbody>
<tr ng-repeat="Contact in contactlist">
<td>{{Contact.name}}</td>
<td>{{Contact.email}}</td>
<td>{{Contact.number}}</td>
</tr>
</tbody>
请解释出现了什么问题。
答案 0 :(得分:1)
JavaScript始终是同步的。那么这里发生了什么,$scope.contactlist=response;
正在$http.get('/contactlist')...
完成之前执行。这意味着,$scope.contactlist
未定义。要解决这个问题,
我建议使用Service
。
var myApp = angular.module('myApp', []);
myApp.controller('AppCtrl', ['$scope', 'dataService', function($scope, dataService){
dataService.contactLists(function(response) {
console.log(response.data);
$scope.contactlist=response.data;
});
});
}])
myApp.service('dataService', function($http) {
this.contactLists = function(callback){
$http.get('/contactlist').then(callback)
}
});