1

私はAngularを初めて使用し、選択できるチェックボックスを備えた人々のリストを作成する基本的なページを作成できました。

このフィドルを参照してください

問題は、getAllPeople 関数をデータベースからプルするように変更したときです。

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

js で配列を構築する代わりに、html が高速にロードされ、空白のリストがロードされます。次に検索すると、リストが表示されます。$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 に答える