Rails サーバー (認証用の Devise を使用) と AngularJS クライアントを使用しています。Rails によって生成されたフォームをクライアント側のページに追加し、ng-submit次のように Angular ディレクティブを追加しました。
<%= form_for("user",
:url => user_session_path,
:html => { "ng-submit" => "doSignIn()" }) do |f| %>
actionこれにより、次のように とng-submit属性の両方を持つフォームが生成されます。
<form accept-charset="UTF-8" action="/users/sign_in" method="post" ng-submit="doSignIn()">
囲んでいる のコントローラーの定義にはdiv、doSignIn現時点では何もしない関数があります。
$scope.doSignIn = function() {
console.log($scope.email, $scope.password);
};
$scope.emailを$scope.password使用してバインドされng-modelます。または、少なくとも、そうであるはずです-私にはわかりません。なぜなら、送信をクリックすると常に に転送されるから/users/sign_inです。ng-submitを使用すると、フォームがユーザーをリダイレクトするのを防ぐという印象を受けました。ng-clickメソッドも使用する同じメソッドを使用して、送信ボタンに を追加しようとしました。doSignIn()また、イベントを渡して を呼び出してみましたevent.preventDefault()。私がリダイレクトされるのを止めるものは何もないようです。
私の目標は、最終的には AJAX でサインインを実行することですが、今のところ、自動リダイレクトを停止できることを証明するだけでも十分です!