Ng-table: эффект нагрузки

Созданный на 14 окт. 2015  ·  8Комментарии  ·  Источник: esvit/ng-table

При загрузке данных с сервера всегда нужно подождать несколько секунд, а там отображается пустое поле, поэтому есть ли какие-нибудь простые способы показать текст загрузки?

Самый полезный комментарий

Вы говорите о задержке фильтра?

Если это просто эффект загрузки при получении данных с сервера, вы можете использовать ngAnimate и css с логическим значением загрузки, когда вы вызываете функцию 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;
                    });
};

А затем добавьте класс css в таблицу:

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

и его родственник в 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; }
}

Все 8 Комментарий

+1, тоже хочу эту функцию.

+1

+1

+1

+1

Я чувствую что-то застрял при загрузке данных. Есть ли решение?

Вы говорите о задержке фильтра?

Если это просто эффект загрузки при получении данных с сервера, вы можете использовать ngAnimate и css с логическим значением загрузки, когда вы вызываете функцию 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;
                    });
};

А затем добавьте класс css в таблицу:

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

и его родственник в 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; }
}

Больше не работаю.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги