【问题标题】:mat-paginator change the placing of mat-paginator-range-labelmat-paginator 改变 mat-paginator-range-label 的位置
【发布时间】:2019-07-08 06:02:27
【问题描述】:

我有一个简单的mat-tablemat-paginator

默认设计如下:

我想更改范围标签的位置并将其放在导航按钮之间,如下所示:

基本上,我需要在button.mat-paginator-navigation-previousbutton.mat-paginator-navigation-next 之间移动容器顶部的div.mat-paginator-range-label 元素。

知道怎么做吗? 谢谢。

【问题讨论】:

    标签: angular pagination angular-material angular-material2


    【解决方案1】:

    实际上,因为“mat-paginator-container”使用了 flexbox,所以您只需使用自定义 CSS 代码即可轻松修改所有组件的默认放置。以我为例:

    // override material paginator
    ::ng-deep .mat-paginator {
        .mat-paginator-container {
            justify-content: center;
        }
    
        // override material paginator page switch
        .mat-paginator-range-label {
            order: 2;
        }
    
        .mat-paginator-navigation-previous {
            order: 1;
        }
        .mat-paginator-navigation-next {
            order: 3;
        }
    }
    

    【讨论】:

    • 谢谢!非常好的解决方案。
    【解决方案2】:

    好的,我创建了一个解决方案。 我使用Renderer2DOM 进行操作,它看起来像这样:

    @ViewChild("paginator", {read: ElementRef}) paginator: ElementRef;
    
    ngAfterViewInit(): void {
            this._renderer.insertBefore(
                this.paginator.nativeElement.querySelector('.mat-paginator-navigation-next.mat-icon-button').parentNode,
                this.paginator.nativeElement.querySelector('.mat-paginator-range-label'),
                this.paginator.nativeElement.querySelector('.mat-paginator-navigation-next.mat-icon-button'));
        }
    

    在我的例子中,this._rendererRenderer2 的一个实例,也是带有ViewChild 装饰器的HTML 代码。

    <mat-paginator #paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator>
    

    如果有人知道更好的解决方案,请告诉我。 否则,我希望我的回答能帮助您完成类似的任务。 谢谢

    【讨论】:

      猜你喜欢
      • 2019-06-19
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多