Ng-table: effet de chargement

Créé le 14 oct. 2015  ·  8Commentaires  ·  Source: esvit/ng-table

Lors du chargement de données à partir du serveur, il faut toujours attendre plusieurs secondes, et il apparaît vide, alors, existe-t-il des moyens simples d'afficher le texte de chargement ?

Commentaire le plus utile

Parlez-vous du délai de filtrage ?

S'il ne s'agit que d'un effet de chargement lors de la récupération des données du serveur, vous pouvez utiliser ngAnimate et css avec un ensemble booléen de chargement lorsque vous appelez la fonction getData() :

settings.getData = function (params: ng.ngtable.ITableParams): ng.IPromise<Array<T>> {
                    self.isLoading = true;
                    return self.itemsFunction(self.specification).then((result: IGridItemWrapper<T>): Array<T> => {
                        self.setItems(result.Items);
                        self.isLoading = false;
                        params.total(result.Count);
                        return result.Items;
                    }).catch((error) => {
                        self.isLoading = false;
                    });
};

Et puis ajoutez une classe css sur la table :

<table ng-table="plc.tableParams" ng-class="{'loading': plc.isLoading}">

et son relatif en css :

.loading-remove {
    transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
}
.loading,
.loading-add.loading-add-active {
    opacity: 0.5;
    //animation: blinker 0.5s cubic-bezier(.5, 0, 1, 1) infinite alternate;  
}
.loading-remove.loading-remove-active {
    opacity: 1;
}
<strong i="13">@keyframes</strong> blinker {  
    from { opacity: 1; }
    to { opacity: 0.5; }
}

Tous les 8 commentaires

+1, je veux aussi cette fonctionnalité.

+1

+1

+1

+1

Je me sens bloqué lors du chargement des données, y a-t-il une solution ?

Parlez-vous du délai de filtrage ?

S'il ne s'agit que d'un effet de chargement lors de la récupération des données du serveur, vous pouvez utiliser ngAnimate et css avec un ensemble booléen de chargement lorsque vous appelez la fonction getData() :

settings.getData = function (params: ng.ngtable.ITableParams): ng.IPromise<Array<T>> {
                    self.isLoading = true;
                    return self.itemsFunction(self.specification).then((result: IGridItemWrapper<T>): Array<T> => {
                        self.setItems(result.Items);
                        self.isLoading = false;
                        params.total(result.Count);
                        return result.Items;
                    }).catch((error) => {
                        self.isLoading = false;
                    });
};

Et puis ajoutez une classe css sur la table :

<table ng-table="plc.tableParams" ng-class="{'loading': plc.isLoading}">

et son relatif en css :

.loading-remove {
    transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
}
.loading,
.loading-add.loading-add-active {
    opacity: 0.5;
    //animation: blinker 0.5s cubic-bezier(.5, 0, 1, 1) infinite alternate;  
}
.loading-remove.loading-remove-active {
    opacity: 1;
}
<strong i="13">@keyframes</strong> blinker {  
    from { opacity: 1; }
    to { opacity: 0.5; }
}

Ne travaille plus.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Nagendra1402 picture Nagendra1402  ·  3Commentaires

batjko picture batjko  ·  3Commentaires

ulise picture ulise  ·  5Commentaires

penchiang picture penchiang  ·  5Commentaires

esvit picture esvit  ·  37Commentaires