【发布时间】:2013-01-08 14:09:18
【问题描述】:
我正在使用 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 执行登录,但现在,只要证明我可以停止自动重定向就很棒了!
【问题讨论】:
标签: ruby-on-rails forms devise angularjs