我尝试了许多解决方案,以防止在使用
进行验证后提交表单ng-submit="login_form.$valid"
但它仍然提交。 这是我的代码。 http://codepen.io/ryantran/pen/bgWXjy
答案 0 :(得分:6)
因为您已在表单上定义了操作和方法,所以无论您在角度处做什么,它都会提交。
如果您想使用angular处理验证,则必须删除它们并使用$ http或$ resource在您的提交方法中调用服务器。
答案 1 :(得分:-1)
ng-submit会调用一个函数来调用。你使用的方式不起作用。为了使它工作,您可以像以下一样使用它:
resources {
filter {
return it.exists()
}
}
使用 loginForm。$有效? login():''“这个条件确保只有在表单有效时才会调用你的函数。
在控制器中:
<form name="loginForm" novalidate ng-submit="loginForm.$valid ? login() : ''">
使用您的所有http请求。确保注入$ http。 在authService make函数如下:
$scope.login = function () {
if ($scope.loginForm.$valid) { //don't need to check validation here again because condition in ng-submit is doing this for you, only to show.
authService.login(params).then(function(response) {
//do what ever you want to, with you response
}, function(error) {
// do something
}
});
}
serviceURI是我将所有api url保存为常量的地方。