我正在使用 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
. 我的印象是 usingng-submit
会阻止表单重定向用户。我还尝试ng-click
使用相同的方法向提交按钮添加一个,该方法也使用该doSignIn()
方法,我什至尝试将事件传递给它并调用event.preventDefault()
. 似乎没有什么能阻止我被重定向。
我的目标最终是使用 AJAX 进行登录,但现在,只要证明我可以停止自动重定向就很棒了!