Как выполнить разбиение на страницы с помощью кнопки браузера в угловом материале?

Только когда вы можете использовать ECMAScript 6 или транспилеры .

Особенности:

  • Не запускается геттер / сеттер при копировании.
  • Сохраняет геттер / сеттер.
  • Сохраняет информацию о прототипе.
  • Работает как с объектно-литералами, так и с функционалом OO .

Код:

function clone(target, source){

    for(let key in source){

        // Use getOwnPropertyDescriptor instead of source[key] to prevent from trigering setter/getter.
        let descriptor = Object.getOwnPropertyDescriptor(source, key);
        if(descriptor.value instanceof String){
            target[key] = new String(descriptor.value);
        }
        else if(descriptor.value instanceof Array){
            target[key] = clone([], descriptor.value);
        }
        else if(descriptor.value instanceof Object){
            let prototype = Reflect.getPrototypeOf(descriptor.value);
            let cloneObject = clone({}, descriptor.value);
            Reflect.setPrototypeOf(cloneObject, prototype);
            target[key] = cloneObject;
        }
        else {
            Object.defineProperty(target, key, descriptor);
        }
    }
    let prototype = Reflect.getPrototypeOf(source);
    Reflect.setPrototypeOf(target, prototype);
    return target;
}

1
задан Abhishek Kumar 25 March 2019 в 11:44
поделиться

1 ответ

Можете ли вы изменить логику разбивки на страницы?

Если да, вы можете поместить номер страницы в маршрут и использовать маршрут для разбивки данных на страницы, при этом вам не нужно прослушивать событие браузера слушателя. [ 115]

Пример (маршрутизация):

{ path: 'list/:page',      component: ExampleComponent },

ExampleComponent

constructor(private route:ActivatedRoute){}
ngOnInit(){
   this.route.params.subscribe( params => {
      this.currentPage = params['page'];
      this.updatePaginator();
      this.updateStorePaginator();
   });
}

Btn для изменения страницы:

<a routerLink="/list/5">Page 5</a>

Для обновления пути с изменением из paginator вы можете сделать это

<mat-paginator (page)="change($event)">
</mat-paginator>

change(e.page){
   this.router.parent.navigate(e.page);
}
0
ответ дан LeonardoVFF 25 March 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: