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进行登录,但就目前而言,只是证明我可以停止自动重定向会很棒! 解决方法
如果< form>这只是一个正确的假设.没有与之关联的动作属性.当您使用Rails form_for帮助程序时,它会在您指定url属性时为您生成一个操作. 为了防止提交表格,你必须遵循上面的亚伯拉罕P的建议,并返回虚假;你不希望表单提交的地方. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |