Получить текущую позицию прокрутки с угловым 6 ViewportScroller - PullRequest
0 голосов
/ 04 октября 2018

Я использую таблицу в своем угловом коде 6. Количество строк исчисляется сотнями.Поэтому я использовал infinityScroll (плагин).Таким образом, моя полоса прокрутки связана с таблицей, т.е. с таблицей, а не со страницей.Я использую сортировку в столбце ALERT TYPE, поэтому всякий раз, когда я буду выполнять сортировку, я хочу, чтобы моя таблица приходила в положение [0,0], т.е. операция сортировки приведет к тому, что таблица вернется в исходное положение (верхняя часть таблицы).

Я использовал ViewportScroller импорт из @ angular / common.Поэтому, когда я использовал его метод getScrollPosition (), он дал мне вывод всей страницы, а не позиции прокрутки таблицы.Помоги мне.Мне нужна позиция прокрутки в таблице, показанной ниже.

<table class="table table_view_land alertable" matSort
   (matSortChange)="sortData($event);">
   <thead *ngIf="tableShowFlag">
      <tr>
         <th></th>
         <th></th>
         <th mat-sort-header="name">Alert Type      
         </th>
         <th>DESCRIPTION</th>
         <th>status</th>
         <th>last Modified</th>
         <th>attachments</th>
         <th>people</th>
         <th>action</th>
      </tr>
   </thead>
   <tbody class='main-panel'
   infiniteScroll
   [infiniteScrollDistance]="2"
   [infiniteScrollUpDistance]="1.5"
   [infiniteScrollThrottle]="100"
   [infiniteScrollContainer]= "selector"
   [fromRoot]="true"
   (scrolled)="onScrollDown()"
   (scrolledUp)="onScrollUp()"   *ngIf='tableData'>
   <tr *ngFor="let data of sortedData">
      <td>{{data.subject}}</td>
      <td>{{data.description}}</td>
      <td>{{data.caseStatusName}}</td>
      <td>{{data.lastupdate | date : "short" }}</td>
      <td>{{data.activityContentPath.length}}</td>
      <td>{{data.watcherCount}}</td>
      <td>Windows 10 Pro</td>
   </tr>
   <div class="spinLoader" [ng2-loading]="showSpinScroll" [config]="loadingConfig" align="center">
   <!-- <mat-progress-spinner *ngIf="showSpinScroll" class="example-margin" [color]="color" [mode]="mode" [diameter]='diameter'>
      </mat-progress-spinner> -->
   </div>
   </tbody>
</table>

Я попытался решить собственную проблему и застрял в ней.Я думаю, что мое решение находится внутри этого кода ниже.

static ngInjectableDef: defineInjectable({ 
     providedIn: 'root',
     factory: () => new BrowserViewportScroller(inject(DOCUMENT), window) 
 })
abstract setOffset(offset: [number, number] | (() => [number, number])): void
abstract getScrollPosition(): [number, number]
abstract scrollToPosition(position: [number, number]): void
abstract scrollToAnchor(anchor: string): void
abstract setHistoryScrollRestoration(scrollRestoration: 'auto' | 'manual'): void
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...