2016-10-19 2 views
1

Для любой формы в Angular 2.0.1, всякий раз, когда я нажимаю кнопку возврата или нажимаю кнопку отправки, вывод ngSubmit запускается дважды. Я уже в том числе FormsModule в модуле приложения:Формы стрельбы ngSubmit дважды на Angular 2.0.1

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

Я пытался следовать некоторые ответы (например, this один), но disableDeprecatedForms и provideForms были удалены, так как RC6. Я также попытался импортировать DeprecatedFormsModule, но, похоже, он также был удален.

Что нужно сделать, чтобы предотвратить увольнение ngSubmit?

UPDATE:

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

<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> 
+0

Показать код формы в HTML, включая кнопку. – micronyks

+0

Возможно, вы отправляете свою форму дважды в первую очередь в теге формы, а во-вторых, на кнопке с именем submit проверяете ее один раз или отправляете код –

+0

Спасибо за ваши комментарии, я просто включил шаблон для одной из форм. – mrodrigues

ответ

0

После некоторых некоторых комментариев, которые я пытался воспроизвести ошибку в Plunker только чтобы понять, что эта проблема была что-то совсем другое. То, что увольнялось дважды, было не ngSubmit, а HTTP-запросом.

Я дважды подписавшись на том же http.post(args), что происходит в том, что мне нужно вызвать .share() поэтому он не будет выполняться для каждого подписываться (https://stackoverflow.com/a/37241863/2908285).

Смежные вопросы