Angular 2.0.1 triggering ngSubmit event twice within forms

When using Angular 2.0.1, I'm facing an issue where the ngSubmit output is being triggered twice every time I press return or click on the submit button within any form. The FormsModule has already been included in the application module as shown below:

@NgModule({
  imports: [
    BrowserModule,
    HttpModule,
    FormsModule,
    routing
  ],
  declarations: [
    // ...
  ],
  providers: [
    // ...
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

I've tried various solutions like disabling deprecated forms and providing forms which have been removed since RC6. Additionally, attempting to import DeprecatedFormsModule did not solve the issue either.

What steps should I take to address this problem and prevent the ngSubmit from firing twice?

UPDATE:

Although I thought the specific template wouldn't be relevant due to it affecting all forms in the application, here is an example of a stripped-down form structure:

<form (ngSubmit)="login(user)">
  <input [(ngModel)]="user.username" name="username" type="email" id="username" required>
  <label for="username">Email</label>

  <input [(ngModel)]="user.password" name="password" type="password" id="password" required>
  <label for="password">Password</label>

  <button>
    Submit
  </button>
</form>

Answer №1

Upon receiving some feedback, I attempted to replicate the issue in a Plunker only to discover that the root cause was actually something different. It turned out that the HTTP request was firing twice, not the ngSubmit event.

I mistakenly subscribed twice to the same http.post(args) method. To prevent this from happening, I needed to make use of .share() to ensure it is not executed every time there is a new subscription (link here).

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

Defining a TypeScript conditional return type that may include undefined

Here is the function I currently have, but unfortunately I encountered the following error: Type '(T & undefined) | { obj: T & ({} | null); }' is not assignable to type 'T extends undefined ? undefined : { obj: T; }'. Type & ...

Resolving problem in React component: TypeScript error - Unable to find property 'type' on 'string' type

In my React typescript component, I have defined a custom block that filters and displays data: type CustomTeaser = Exclude<Teaser, TeaserThree>; const MyCustomBlock = ({ customItems }: Props) => { const sixGridData = { items: customItems as Cu ...

Handling JSON Objects with Next.js and TypeScript

Currently, I am working on a personal project using Next.js and Typescript. Within the hello.ts file that is included with the app by default, I have added a JSON file. However, I am facing difficulties in mapping the JSON data and rendering its content. T ...

Exploring the methods for monitoring multiple UDP ports on a single address in Node.js within a single process

I am currently working on developing a Node.js application to manage a small drone. The SDK provides the following instructions: To establish a connection between the Tello and a PC, Mac, or mobile device, use Wi-Fi. Sending Commands & Receiving Responses ...

How to Use ngFor to Create a Link for the Last Item in an Array in Angular 7

I need help with adding a link to the last item in my menu items array. Currently, the menu items are generated from a component, but I'm unsure how to make the last item in the array a clickable link. ActionMenuItem.component.html <div *ngIf= ...

Service consuming in Angular 2 using Stomp protocol

Why am I seeing responseBody as undefined, but I am able to see the subscribe response in msg_body? What could be causing this issue with responseBody? let stomp_subscription = this._stompService.subscribe('/topic/queue'); stomp_subscription.ma ...

The functionality of `import { Dialogs } from "@nativescript/core"; seems to be malfunctioning

For my project, I am in need of using Dialogs. Unfortunately, the import from @nativescript/core as mentioned in their documentation is not working. I keep encountering this error: Module '"@nativescript/core"' has no exported member &a ...

Concerns about unchanging Behavior Subject affecting Ionic 4 interface

I have created a list program using Ionic 4 and attempted to update the list by utilizing BehaviorSubject from rxjs. The list updates properly when initialized in the ngOnInit() method, but fails to update within the add() callback. Despite logging the ou ...

Issues with Angular ng-bootstrap tabset component not functioning as expected

{ "name": "ModalWindow", "version": "1.0.0", "repository": { "type": "git", "url": "" }, "scripts": { "build": "webpack --mode production", "start": "webpack-dev-server --mode development --open" }, "license": "MIT", "depend ...

The value of NUMBER_VALUE cannot be transformed into a String while trying to update the Item

I've encountered a strange issue with DynamoDB where I'm unable to update an item. Below is the command I'm using: TableName: 'UserTable', Key: { UID: { S: 'h4XJj3YRxZiF7TDcGkxAhc' } }, UpdateExpression: 'SET numRat ...

Encountering Issues with Typesense Query involving Parentheses

In my development setup, I am utilizing Ionic 5 with Angular 12, NodeJS 14, and Typesense 1.4.1. An issue arises when attempting to query Typesense, resulting in the following error: ERROR Error: Uncaught (in promise): u: Request failed with HTTP code ...

Rewriting URLs in Angular 2

I am a beginner in Angular 2 and I am currently working on a project that requires URL rewriting similar to that of ' '. In Zomato, when you select a city, the city name appears in the URL like ' ', and when you select a restaurant, t ...

Angular 9 - Unable to bind to 'formGroup' as it is not recognized as a valid property of 'form'

I encountered an issue while setting up reactive forms in my Angular 9 code environment. The error message reads: error NG8002: Can't bind to 'formGroup' since it isn't a known property of 'form'. After researching on Goog ...

Is the Inline Partial<T> object still throwing errors about a missing field?

I recently updated to TypeScript version ~3.1.6 and defined an interface called Shop as follows: export interface Shop { readonly displayName: string; name: string; city: string; } In this interface, the property displayName is set by the backend a ...

Running cy.task after all test suites can be done by adding the task in a

I need some guidance on running cy.task after executing all test suites. I have a file generated at the start of the tests that I would like to remove once they are completed. Regardless of whether any tests passed or failed, I want to trigger cy.task im ...

Issue with populating virtual IDs in NestJS mongoose schema containing an array of schemas

In the schema provided below, I have defined the structure for Map, Marker, and Desk: export type MapDocument = Map & Document @Schema({ timestamps: true, versionKey: false, id: true }) export class Map { constructor(partial?: Partial< ...

Issues with Angular route links not functioning correctly when using an Array of objects

After hard coding some routerLinks into my application and witnessing smooth functionality, I decided to explore a different approach: View: <ul class="list navbar-nav"></ul> Ts.file public links = [ { name: "Home&quo ...

Encountering a type error in Typescript when assigning a transition component to a Material UI Snackbar

Attempting to implement snackbar alert messages using Material UI in a React JS application with TypeScript. Encountering a type error when trying to modify the transition direction of the snackbar. Referenced the snackbar demo from Material UI documentat ...

Angular firing a function in the then clause before the initial function is executed

I have a situation where I need to make multiple service calls simultaneously, but there is one call that must be completed before the others are triggered. I have set it up so that the other calls should only happen after the .then(function() {}) block of ...

What is the method for identifying if an ion-content element contains a scrollbar?

Is it possible to dynamically show or hide elements based on the presence of a scrollbar within ion-content? Specifically, I want to display a button for loading more items in a list when there is no scrollbar, and hide it when a scrollbar is present (thus ...