问题已根据用户 MarkWatson 和 sdfacre 的贡献进行了更新
单击按钮后,我想提交表单并在不同的页面上显示结果。但是,我的代码不起作用。
我正在使用 ui-router 来更改状态:
$stateProvider.state('first', {
url: '/first',
templateUrl: '/first.html',
controller: 'MainCtrl',
}).state('second', {
url: '/second',
templateUrl: '/second.html',
controller: 'MainCtrl',
})
请注意,我已经将状态注入(inject)到我的 Controller 中。这里我还将状态注入(inject)到我的提交函数中:
$scope.submitForm = function() {
server.submitForm($scope.input1, $scope.input2)
.success(function(data) {
$scope.results = data;
$state.go('second');
}).error(function(err) {
console.log(err);
});
};
HTML 表单:
<form name = "myform" ng-submit = "submitForm()">
...
<button type = "submit" ng-click="validationFunction()" class="btn btn-default">Submit and go to another page</button>
</form>
我不想将“$state.go('second'); ”放入validationFunction中,因为我只希望在提交表单时发生重定向,而不是在验证表单时发生。
目前,数据未按预期显示在第二页上。
最佳答案
从 $scope.submitForm = function($state) 中删除 $state;
这不是注入(inject),它只是覆盖 $state 变量。
关于javascript - Angular ui-router 提交表单并重定向页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36491838/