微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 在Rails生成的表单上AngularJS ng-submit失败

我正在使用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进行登录,但就目前而言,只是证明我可以停止自动重定向会很棒!

解决方法

I was under the impression that using ng-submit would prevent the form
from redirecting the user.

如果< form>这只是一个正确的假设.没有与之关联的动作属性.当您使用Rails form_for帮助程序时,它会在您指定url属性时为您生成一个操作.

为了防止提交表格,你必须遵循上面的亚伯拉罕P的建议,并返回虚假;你不希望表单提交的地方.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐