我一直在寻找关于这个问题的解决方案,但被困住了。我是AngularJS的新手,所以我不知道它所具有的所有好技巧。我有一个多部分的表单,使用ng-href最后是HTTP GET。这是提交所有内容的代码段。
<a ng-href="#/report/{{ctrl.model}}" ng-click="ctrl.createReport()">Finish</a>
现在,我要在此表单中添加验证,并且如果验证失败,我想防止链接被跟踪。验证逻辑包含在控制器函数中,该函数将根据验证结果返回true或false。
不幸的是,这段代码是其他人开发的大型实现的一部分。我只想添加验证部分,而不必在代码内修改太多逻辑。
有什么办法可以规定条件ng-href
吗?这样,当单击“完成”时,如果验证通过,浏览器将仅遵循URL。否则,是否仍要在控制器内以编程方式执行相同的GET?我已经看过使用$http.get()
和$window.location.href
。前者似乎是AJAX,它没有将浏览器重定向到名称URL。后者,我不知道如何将扩展ctrl.model
为合适的GET字符串。
任何想法,想法和建议将不胜感激。谢谢!!!
解决方案使用
HTML:
<a data-ng-click="ctrl.createReport()">Finish</a>
JS:
if (validate()) {
$location.path('/report/' + angular.toJson(self.model, false));
}
一起删除ng-href。并使用$ location服务。
function createReport(){
if(myForm.$valid){
$location.path('/report'+model);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句