2016-09-05 8 views
3

を実行するのではなく、送信されます私は、次の成分を有しますstuff(デバッグのために追加された)、フォームコンポーネントgetsロードされた(もちろん、私はフォーム自体を参照してください)。 preventDefault()のコールとreturn falseは、ログインボタンを押したときに実際に送信される(したがって、ページ全体がリロードされる)のを防ぐための私の試みです。また、フォームが塗りつぶされていない(したがって有効でない)場合でも、ログインボタンは無効になりません。Angular2フォームがをonSubmit()メソッド

すでにtype="submit"の代わりに<button type="button">を使用しようとしましたが、onSubmit()メソッドは呼び出されません。 (ngsubmit)="onSubmit()"(click)="onSubmit()"というボタンに移動すると、同じことが起こります(またはそれ以上のことは起こりません)。私は問題がどこか深いと考え始めます。このコンポーネントでさえも問題はありません。

私は迷ってもよいですか?私は2.0.0-rc.6を使用しています。

答えて

2

使用

<button type="button" (click)="onSubmit()" 

代わりの

<button type="submit" 
+0

私はその質問を忘れていました。私はすでに成功なしにそれを試しました。 'onSubmit()'メソッドは呼び出されません。 – GergelyPolonkai

+0

私は自分の答えを更新しました。私の古い答えとビートルジュースの答えの組み合わせです。このように試しましたか? –

+0

はい、私はしました。 'onSubmit()'はまだ呼び出されません。 – GergelyPolonkai

1

ギュンターの提案が動作しない@場合は、常にちょうど何が起こるかの制御を取ることができます。 (ngSubmit)="onSubmit()"を外し、<button>で、私はフォームを送信すると呼ばれるのdevのサーバーjson-serverhttps://github.com/typicode/json-server)へのREST呼び出しをやったことが、問題があった

<button (click)="onSubmit()"... 
+0

まだ同じです。 'type =" submit "で、それは提出されて再ロードされ、' type = "button" 'は何も起こりません(コンソールでさえありません)。 – GergelyPolonkai

+1

@GergelyPolonkaiはコンソールに何らかのエラーがないかどうかを調べ、 '404 not found 'やその他の問題のネットワークリクエストを探します。おそらく 'FormsModule'がこのコンポーネントのモジュールに適切にインポートされなかったかもしれません – BeetleJuice

+0

何もありません。私は本当に私のSystemJS構成の問題のためにFormsモジュールが欠けていましたが、私はそれをすでに解決しています。それは私が 'lite'を再起動して以来、言及する価値があります:) – GergelyPolonkai

0

行う - とアプリが使用して実行していた角度-CLIのng serveコマンド。 event.preventDefault()と書いているにもかかわらず、ページがリロードしていました! (どんなに<form (ngSubmit)="onSubmit($event)">または<button (click)="onSubmit()">から来るならば!)

問題は、JSON-サーバーは非常にスマートであること、だったとあなたはそれが機能してみましょうJSONファイルを修正します!そして、これはng-serve-watcherを起動します - 私の提供されたjsonファイルがアプリケーションコード/assetsフォルダ内に存在するためです);

関連する問題