2017-04-15 7 views
0

ng-bookから:ng-submitはデフォルトアクションを防止します - 意味ですか?

ng-submitを使用して、式をonsubmitイベントにバインドします。このディレクティブは、フォームにアクション属性が含まれていない場合にのみ、デフォルトのアクション(リクエストの送信とページの再ロード)も防止します。

上記の段落の意味はなんですか?

+0

かなり自明のようです。どうしたら分かりませんか? – TZHX

答えて

0

それは意味:

<form ng-submit="submit()"></form> 

が提出したイベントを防ぐことができます。そしてあなたのサーバーにフォームを投稿しないでください。

しかし

<form ng-submit="$ctrl.submit()" action="/url" method="post"></form> 

は、デフォルトではイベントを提出防ぐことはできません。 何もしないと、あなたのフォームは古典的なhtmlフォームとして扱われ、あなたのサーバーの/ urlに(コントローラのサブミットコードの後に​​)結果を投稿します。この場合には、それを防ぐために

、あなたがこの方法を提出してイベントを渡す必要があります:

<form ng-submit="$ctrl.submit($event)" action="/url" method="post"></form> 

そして、あなたのコントローラで:

function submit(event) { 
    event.preventDefault(); 
} 
0
  • <form>タグはこれらの両方を持っている場合属性:<form ng-submit="submit()" action="http://example.com">この場合、アクションリンクにリダイレクトされるだけでなく、 "submit()"メソッドも呼び出されます。
  • しかし、それはng-submitしか持っていないし、アクション属性を持たない場合:<form ng-submit="submit()">この場合、提出時にリダイレクトされず、submit()メソッドを実行するだけです。
関連する問題