我是Angular的新手,并且能够创建一个基本页面,创建一个人员列表,其中包含一些允许您选择它们的复选框。
问题是当我将getAllPeople函数更改为从数据库中提取时
$http.post('angular.cfc?method=returnSerializeQuery').success(function(data) {
$scope.allPeople = data;
});
而不是在js中构建数组,html加载为fast并加载空白列表。如果我然后搜索列表出现。我知道$ http调用太慢,无法跟上文档负载。
我必须使用$ timeout但我似乎无法使其工作,数据集有时可能需要更长的时间。如果有一个Angular版本的$(document).ready()我似乎无法找到它。
我也猜测,因为这是我的第一个功能齐全的页面,所以我没有完全正确设置它,这可能与它有关。
答案 0 :(得分:2)
如果想要延迟页面呈现,直到从服务器获取数据,那么您有很好的答案(和示例)here和here。
主要观点:
function Ctrl($scope) {
$scope.data = {};
}
Ctrl.resolve = {
data: function($http) {
return $http({method: 'GET', url: '/path/to/some/data'});
}
};
var myApp = angular.module('app', [], function($routeProvider) {
$routeProvider.when('/', {
templateUrl: '/template.html',
controller: Ctrl,
resolve: Ctrl.resolve
});
});
另请查看此工作示例:http://jsfiddle.net/dTJ9N/54/
答案 1 :(得分:1)
在$scope.allPeople = data;
添加$scope.groupToPages()
后的帖子()。成功回调函数中,因为ng-repeat正在关注pagedItems
,而不是allPeople
。