30

古い html ページを jQuery から Angular に移行していますが、<input type="submit">. ng-appディレクティブを使用してページを強化すると、古いフォームが機能しなくなりました (つまり、submitボタンを押しても何も起こりません)。

私はこの問題を検索し、Angular のドキュメントもスキャンしましたが、もう誰もフォームを送信していないようです。

キーストロークをあまり使わずにこれらのフォームに再び命を吹き込む方法についての提案をいただければ幸いです。

現在、フォームには次のマークアップがあります。

<form name="form_upload" method="post" action="" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="send" value="Upload">
</form>

すべての jQuery コードを削除し、Angular で新たに開始しました。

更新:

私は今、原因を見つけたと思いactionます。それは空の属性です。空のアクションは標準では歓迎されていないようですが、現在のページの URL にフォームを送信できるようにするのは非常に便利です。それを行う Angular の方法はありますか?

4

3 に答える 3

18

ドキュメントから外れる: http://docs.angularjs.org/api/ng.directive:form

Angular の哲学は、データとページのリロードを最小限に抑えることであるため、「古い学校のフォーム」は好きではありませんがaction、フォームの属性を使用することで回避できます。

Angular は、単一ページのアプリケーションを念頭に置いて設計されており、ページ全体のリロードに時間がかかるため回避しています。ディレクティブを使用するngSubmitことで、フォーム データをサーバーに送信する関数を定義し、ページ全体をリロードするよりもはるかに迅速に応答を返すことができます。キロバイトではなくバイト。

于 2013-06-05T17:12:16.997 に答える
0

私はこれをやった。フォームを送信するためにjqueryを使用していたと確信していますが、おそらくプレーンな古いjavascriptでそれを行うことができます。

angular form ページのコメントの 1 つは、次のことを示唆しています。

<input onclick="javascript:$(this).parent().submit();" type="submit" value="">

http://docs.angularjs.org/api/ng.directive:form

于 2013-06-05T17:27:45.137 に答える