1

action="xxxx"フォームに属性を追加することで、角度のある ajax 呼び出しや古い学校のスタイルを使用せずに、angularjs を使用してフォームを送信する簡単な方法はありますか?

例としては、各フィールドにモデルを割り当てるオプションがない、または ajax 呼び出しで送信する巨大なフォームがありますが、フォームが ng-app 内にあるため、送信方法に関する他の解決策が見つかりません。言い忘れましたが、あらゆる種類のフォームにアクションを追加することも悪い考えです(私の場合)。

私はそれをjQueryと組み合わせてみましたが、おそらく私もそれをやっています。

<form name="ticketForm" method="post" enctype="multipart/form-data" ng-controller="TicketCtrl" ng-submit="submitForm()">
...
</form>

スクリプト部分は次のようになります。

var Ticket = angular.module('ticket', []);

Ticket.controller('TicketCtrl', ['$scope', function($scope)
{
    $scope.submitForm = function()
    {
        $('form[name="ticketForm"]').submit();
    };
}]);

フォームは送信されますが、コンソールで見ると、角度があまり好きではありません。

Error: $apply already in progress
4

1 に答える 1

6

再帰呼び出しにつながっていると思います(jQueryラッパーオブジェクトで送信を呼び出しているため、フォーム送信ハンドラーを再度呼び出すため)、代わりにdom要素の送信メソッドを呼び出してみてください

$('form[name="ticketForm"]')[0].submit();
于 2013-09-25T11:24:36.667 に答える