html代码:
<form action="{{url}}">
<input type="submit" class="btn btn-info" ng-
click="goToProdPage()" value="Resume">
</form>
Angular Code:
$scope.goToProdPage = function(){
if(id){
$scope.url = "#/"+id+"/cpq";
console.log("done "+id);
$state.go("cpq");
}
}
请忽略id,因为我只放了一半代码。 我已经使用过$(document.body).append(form); 并且它解决了这个问题但是在添加它之后它在控制台上显示出错误
angular.js:14362 ReferenceError:未定义表单 at b。$ scope.findUser。$ scope.goToProdPage(login.js:44) at fn(eval at compile(angular.js:15197),:4:156) 在e(angular.js:26808) at b。$ eval(angular.js:18017) at b。$ apply(angular.js:18117) 在HTMLInputElement。 (angular.js:26813) 在dg(angular.js:3617) 在HTMLInputElement.d(angular.js:3605)
答案 0 :(得分:2)
不是100%肯定你在这里想做什么。但我的意见是你应该使用更多的角度处理形式......
<form ng-submit="mySubmit()">
<input type="submit" value="Send form">
</form>
现在,您可以在控制器中编写一个处理表单提交的函数。
this.mySubmit = mySubmit;
function mySubmit() {
// Check here if the url exists
// ...or what to do when submitting the form...
// this.goToProdPage();
}
更详细的示例或额外信息可以帮助我更好地理解问题: - )
答案 1 :(得分:1)
首先从按钮中移除类型提交并将id放入表单
<form id="myform" action="{{url}}">
<input type="button" class="btn btn-info" ng-
click="goToProdPage()" value="Resume">
</form>
并在函数goToProdPage()完成所有处理后触发表单提交jquery
$scope.goToProdPage = function(){
if(id){
$scope.url = "#/"+id+"/cpq";
console.log("done "+id);
$state.go("cpq");
$('#myform').submit();
}
}