Issue with alert not appearing after webpage is refreshed or reloaded on Angular v10

I'm currently working on an Angular single page application. When a user clicks a button, the page refreshes and a message is supposed to be displayed.

(TYPESCRIPT)

import { Component, OnInit, OnDestroy } from '@angular/core';

export class newComponent implements OnInit, OnDestroy {
  showAlertMessage = false;

  buttonClicked(dataElement: DataModel): void {
    this.restService.postAction(dataElement, 'a new record is being inserted').subscribe();
    window.location.reload();
    this.showAlertMessage = true;
  }

(HTML)

<table mat-table [dataSource]="dataSource" multiTemplateDataRows class="mat-elevation-z8">
  <th mat-header-cell *matHeaderCellDef> Header </th>
    <td mat-icon *matCellDef="let element">
      <button (click)="buttonClicked(element)">No Data To Report</button>
    </td>
</table>

  <div class="alert alert-primary" *ngIf="showAlertMessage" role="alert">
    This is a primary alert—check it out!
  </div>

I've encountered an issue where the alert message briefly appears, then disappears during the page refresh caused by clicking the button. How can I ensure that the page reloads first before displaying the message? Currently, the message doesn't show up after the window.location.reload() call in the buttonClicked() method.

Answer â„–1

When you reload the page, it resets the application and causes your showAlertMessage = false; to run again when the component loads.

An easy way to achieve the desired behavior is by using URL parameters. By modifying the path with something like ?showAlertMessage=true upon button click, you can ensure that the initial state differs upon reloading. (example)

Other options, as mentioned by Andre, include using local storage or another method to persist state outside of the application scope.

Consider whether reloading is the best solution here, as re-initializing the entire application can take time and somewhat contradicts the idea of a single-page application.

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

Updating data from an ajax call in chart.js can be done with a few simple steps

I have successfully generated a graph using data from an ajax call in a php file. Now, I want to enhance this graph by allowing users to select a specific customer from a drop-down list (chg_customer) and display the corresponding count on the chart. Altho ...

Spring MVC: Incorporating Java Map into Optgroup Options

In my Spring MVC project, I am currently passing a Map from Java to my webpage using the variable "userLocales" through request.setAttribute('userLocales', bluh bluh bluh). I am looking for a way to extract the strings from this variable and use ...

Retrieve all populated fields on the second tier using Node.js and Mongoose

Do you have any insights to share on Node.js and mongoose? I've defined a mongoose schema and when I use findOne(), it returns a document with multiple elements under the "resource" key. Below is an example of how the document looks like: { "met ...

Guide on displaying console.log in mobile simulator while using Angular2

Interested in debugging JavaScript on mobile devices, particularly Android and iPhone. Seeking a code snippet or library that can display console.log messages on the screen of a phone emulator. Ideally looking for a solution that works with angular2 and i ...

Is binding necessary for passing a string to an Angular component?

There are multiple methods for passing string literals to a component: <component inputField="string"></component> <component [inputField]="'string'"></component> <component inputField="{{'string'}}"></ ...

Is there a way to create an interpolated string using a negative lookahead condition?

When analyzing my code for imports, I will specifically be searching for imports that do not end with -v3. Here are some examples: @ui/components <- this will match @ui/components/forms/field <- this will match @ui/components-v3 ...

Using renderProps in combination with TypeScript

I've encountered an issue while trying to convert my React project to TypeScript, specifically with the login component that uses react-google-login. The error I'm facing is related to renderProps: Overload 1 of 2, '(props: { component: El ...

Is there a way to prevent a page from automatically redirecting to another page without relying on user action or using the StopPropagation and window.onbeforeunload event?

function confirmExit(e) { var f = FormChanges(); //checking if the page has been modified if (f.length > 0){ if (submitForm == false) { if(!e) var e = window.event; e.cancelBubble = true; e.returnValue = "You ...

Use MatDialog to open the next dialog when the previous one has been closed - whether you choose to use a

I'm trying to figure out how to open the next dialog from a stream only after the previous one has been closed. I want to make sure that I don't open all the dialogs in a row as soon as I get the values from the stream. const arraySource ...

CSS magic: Text animation letter by letter

I have a <div> with text. <div> to be revealed on the page one character at a time:</p> <div>, the animation should stop and display the full text instantly.</p> In summary, I aim to replicate an effect commonly seen in Jap ...

How to bring in an interface in Angular 2

For my Meteor app using Angular 2, I am looking to create a custom data type like the one below: interface MyCustomType { index: number; value: string; } To use this custom type across multiple files, I attempted to create a separate file named "mycu ...

Steps to reset default behavior after using event.preventDefault()

I came across a similar question on this post, but the solution provided did not work for my specific needs. So, I decided to share some example code and provide a bit of explanation... $(document).keypress( function (event) { // Pressing Up o ...

Animate an image to the right when clicked, then return it to the left with a second click

Seeking help with animating a set of images to move individually 300px right on first click, and then 300px left when clicked again. I'm currently facing an issue where my code is not working. It could be due to A) syntax errors or B) the images not ...

What is the right way to configure an Axios Interceptor in a ReactJS app using TypeScript?

While I typically use JS with React, I decided to switch to Typescript. However, I've been encountering an error when trying to initialize a request interceptor instance: src/utils/services/axios.service.ts:16:8 TS2322: Type '{ 'Content-Type ...

What could be causing the sluggish performance of this particular MongoDB query?

I'm currently grappling with how to manage a particular situation that will eventually involve date ranges. db.article_raw.count({ "date": {$gt:ISODate("2015-07-08T00:00:00.000Z")}, "searchTerms.term":"iPhone" }) Despite knowing that my indexe ...

Issue with ng2-smart-table not showing Textfield

I've been struggling to display a textfield within a column of the ng2-smart-table component. I've gone through the ng2-smart-table documentation, but unfortunately, the textfield is still not appearing. Can anyone offer assistance in resolving t ...

Issue with clicking a button in Selenium using JavaScript for automation

I'm encountering an issue where Selenium is detecting an element as disabled, despite it being enabled. To work around this, I am attempting to click on the element using JavaScript with the following code snippet: IWebElement button = driver.FindEl ...

Adjust the CSS within a <style> element using jQuery or javascript

What I aim to accomplish: I intend to dynamically add and modify rules within a <style> tag using JavaScript/jQuery. Reason behind this goal: I am in the process of creating a color scheme editor where changes made by the user should be reflected ...

Aligning form elements horizontally with Angular 2 Material

Thank you in advance for taking the time to assist me. Your help means a lot! I have developed a form using Angular 2 Material Design and I am facing an issue with aligning two elements. Specifically, how can I align Bill Number and Year as shown in the s ...

Steps for displaying a pop-up window and showcasing a JSF Response

In my current project, I am utilizing JSF 1.2 without any component libraries for a JSF Application. One specific scenario I am tackling involves having a JSF-rendered page where clicking on a link should trigger the opening of a pop-up page displaying d ...