1

我是 Angular 的新手,并且能够创建一个基本页面,该页面创建一个带有一些复选框的人员列表,允许您选择他们。

看到这个小提琴

问题是当我将 getAllPeople 函数更改为从数据库中提取时

 $http.post('angular.cfc?method=returnSerializeQuery').success(function(data) {
       $scope.allPeople = data;
     });

html 不是在 js 中构建数组,而是快速加载并加载空白列表。如果我然后搜索列表显示。我知道 $http 调用速度太慢,无法跟上文档负载。

我必须使用 $timeout 但我似乎无法让它工作,因为数据集有时可能需要比其他时间更长的时间。如果有 $(document).ready() 的 Angular 版本,我似乎找不到它。

我还猜测,由于这是我的第一个功能齐全的页面,我还没有完全正确地设置它,这可能与它有关。

4

2 回答 2

2

如果想法是延迟页面呈现,直到从服务器获取数据,您在此处此处都有很好的答案(和示例) 。

主要思想:

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/

于 2013-01-10T00:35:28.423 回答
1

在您的 post().success 回调函数中,在$scope.allPeople = data;add之后$scope.groupToPages(),因为 ng-repeat 正在观看pagedItems,而不是allPeople.

于 2013-01-10T00:28:34.293 回答