2013-01-09 1 views
1

저는 Angular에 익숙하지 않으며 선택할 수있는 확인란이있는 사람들의 목록을 만드는 기본 페이지를 만들 수있었습니다.에는 AngularJS 버전의 jQuery 문서가 준비되어 있습니다.

See this fiddle

문제는 내가 변경할 때 getAllPeople 빈 목록을 빠르게로드하기 위해 JS html로로드의 배열을 건물의

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

대신 데이터베이스에서 끌어 기능이다 . 그러면 목록을 검색하면 나타납니다. $ http 호출이 너무 느려서 문서로드를 따라 가지 못한다는 것을 알고 있습니다.

나는 $ timeout을 사용해야하지만 데이터 집합을 작동시키지 못하는 경우가 종종 있기 때문에 다른 설정보다 오래 걸릴 수 있습니다. $ (document) .ready()의 Angular 버전이있는 경우 찾을 수 없습니다.

나는이 기능이 처음 완전히 기능적인 페이지이므로 완전히 설정하지 않았으며 그 기능과 관련이있을 것이라고 추측합니다. 겨-반복, allPeoplepagedItems하지 지켜보고 있기 때문에 귀하의 게시물에서

답변

1

(). 성공 콜백 함수, $scope.allPeople = data; 후, $scope.groupToPages()를 추가합니다.

+0

난 그냥 그 시도했지만 결과는 슬프게도 그대로였다. – Lance

+0

좋아, 또 다른 $ scope 속성을 업데이트해야했습니다 :'$ scope.groupToPages()'전에'$ scope.filteredPeople = $ scope.allPeople; '을 추가하십시오. Working [fiddle] (http://jsfiddle.net/mrajcok/Gtkmm/) - HTTP 지연을 시뮬레이트하기 위해 $ timeout을 추가했습니다. –

2

서버에서 데이터를 가져올 때까지 페이지 렌더링을 지연시키는 것이 목표라면 좋은 대답 (및 예)이 herehere입니다.

주요 아이디어 :

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/

관련 문제