Reset Angular's virtual scroll to the beginning of the list

Within my Angular application, I am utilizing the Virtual Scroll feature from the Angular cdk.

Here is a snippet of my Component's template:

<cdk-virtual-scroll-viewport itemSize="50" class="example-viewport">
  <div *cdkVirtualFor="let item of items" class="example-item">{{item}}</div>
</cdk-virtual-scroll-viewport>

Within my Component's class, there exists a method that modifies the array items by providing it with new content. The size of this array can vary each time the method is executed:

reload(newItems) {
  this.items = newItems;
}

Upon calling the reload function, the items array updates correctly and visually reflects all changes. However, the scroll position does not reset to the top.

I am looking for a way to automatically reset the virtual scrolling to the top whenever the items array undergoes modification.

Answer №1

After encountering a problem, I was able to find a solution by incorporating a CdkVirtualScrollViewport within my Component:

import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';

// ...
export class MyComponent {
  @ViewChild(CdkVirtualScrollViewport) virtualScroll: CdkVirtualScrollViewport;

  // ...

  refreshData(newItems) {
    this.items = newItems;
    this.virtualScroll.scrollToIndex(0);
  }
}

Simply using

this.virtualScroll.scrollToIndex(0);
resolved the issue.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Angular FormData causes Unexpected Token error when using HTTP Post

In my Ionic application, utilizing Angular and Capacitor, I have a function specifically designed for uploading files using FormData post method. var data = new FormData(); data.append(name, blobFile, "TestName"); data.app ...

Navigating through child routes in Angular can be tricky, especially when dealing with unknown routes

I'm having some trouble with routing today. I have a collection of components each associated with a unique route. I am trying to include a 'PageNotFoundComponent' for any incorrect route in both the parent and child components. Let me expla ...

Converting API data in Angular using rxjs

Hey there, I received this response from an API: { "records":[ { "id":1, "motivazione":"", "autorizzazione":false, } ] } Can anyone help me transform it to loo ...

Remove the user along with all of their associated documents from Firestore

When a user wants to delete their account, I need to ensure that the 'documents' they created in Firebase are deleted as well. After some research online, I came across the following code snippet: deleteAccount() { const qry: firebase. ...

Encountering an Issue with Angular 9's HttpInterceptor: Unraveling the Mystery of

For my Angular 9 application, I have implemented an HttpInterceptor as shown below: export class AppHttpInterceptor implements HttpInterceptor { intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { ...

Google Analytics is not designed to collect or monitor any information

We are facing issues with Google analytics as it does not seem to be tracking any data on our website. Here is the breakdown of how we have attempted to set it up: The tracking code is added in the Drupal headless backend CMS A dynamic front-end retrieve ...

The browser is initiating an HTTP request upon refreshing a webpage built with Angular

Hey there, currently I'm working on an Angular project that involves making API calls. I have the API URL set up as: const SERVER_URL = https://api.example.com Everything works smoothly until I reload the page after some successful API calls and th ...

Angular Tutorial: Implementing Sidenav Toggling with Icons in Multiple Components

Currently, I am in the process of creating a homepage with a toggleable sidenav. I have successfully implemented the functionality, but I am facing an issue. When the sidenav is closed, I still want to display the icons on the left-hand side instead of ico ...

Performing unit tests in Angular 2 by utilizing a host component

Currently, I am diving into the world of unit testing in Angular2 v2.0.0. To kickstart my journey, I decided to utilize angular-cli to scaffold a project and execute unit tests using 'ng test'. The CLI gracefully generates a sample component alon ...

Creating a TypeScript mixin with a partial class is a useful technique that allows you to

I am attempting to have class A inherit properties from class B without using the extends keyword. To achieve this, I am utilizing a mixin in the following manner: class A{ someProp: String someMethod(){} } class B implements classA{ someProp: String ...

Ionic3 attempted lazy loading, however it failed due to the absence of any component factory

When implementing Lazy loading in Ionic3, the browser displays an error message after serving: Error: Failed to navigate - No component factory found for TabsPage. Have you included it in @NgModule.entryComponents? Below is the code snippet: app.modu ...

The compatibility issue arises when trying to utilize Axios for API calls in Ionic 6 React with react-query on a real Android device in production. While it works seamlessly on the emulator and browser

My form utilizes react-hook-form to submit data to a server. Here is the code: <FormProvider {...methods}> <form onSubmit={handleSubmit(onIndividualSignup)}> <Swiper onSwiper={(swiper) => setSlidesRef(s ...

Ensuring various conditions with ngIf

I've created a toggle function that updates the text of a link, but I'm struggling to handle multiple conditions. For example, *ngIf="condition1 or condition2". Below is an excerpt from my code: <a routerLink="/ads" class="tip" (click)="togg ...

Guide on how to automatically navigate to the homepage upon logging in using Angular

It's puzzling to see my navbar appearing on the login page as well. Another issue is that even after successfully logging in and receiving the token, I am not redirected to the homepage. Let me outline what I have tried so far - starting with my modul ...

The error message "NullInjectorError: No provider for HTTP!" is generated by the ionic-native/http module

Currently working with ionic 3.2 and angular. To install the HTTP module (https://ionicframework.com/docs/native/http/), I used the following commands: ionic cordova plugin add cordova-plugin-advanced-http npm install --save @ionic-native/http In my scri ...

When utilizing a property on "this" within a function defined in a constructor, the compiled JavaScript code produces an undefined result

Currently, I am in the process of creating a prototype where my objective is to develop a webservice using the express framework in TypeScript, compile it to TS, and host it within a firebase functions environment. The code structure includes a Controller ...

Tips for adjusting a Bootstrap table to the size of the page it's on

app.component.html <html> <nav class="navbar navbar-expand-md"> <div class="container"> </div> <div class="mx-auto order-0"> <a class="navbar-brand mx-auto" href="#">GURUKULAM PRE-SCHOO ...

The React build script encounters issues resolving node modules while operating within a Docker environment

I'm currently in the process of dockerizing a React app that was initially created using CRA (Create React App) with TypeScript manually added later on, rather than through CRA. My file structure looks like this: <my app> ├── node_modules ...

Solving automatically generated TypeScript MongoDB types for GraphQL results

Utilizing the typescript-mongodb plugin along with graphql-codegen to automatically generate Typescript types enables easy data retrieval from MongoDB and GraphQL output via Node. The initial input schema in GraphQL format appears as follows: type User @ ...

Generating Enums from JSON REST API in Angular 8

Is there a way to create an enum from a JSON REST API? Here is the code I currently have in my service.ts file: getDataFromJson(): Observable<any> { return this.httpClient.get<any>(`../../../assets/gender.json`) .pipe(map(data => ...