当我点击表单中的提交按钮时,它会添加一个?就在#so / app /#/ pageName更改为/ app /?#/ pageName之前。这是正常的行为吗?代码只是基本的东西。
angular.module('myApp', [])
.controller('MyCtrl', function ($scope) {
$scope.submit = function() {
};
});
<form ng-controller="MyCtrl" ng-submit="submit()">
<button>Submit</button>
</form>
答案 0 :(得分:6)
我终于找到了答案,感谢Angular JS does not allow preventDefault or return false to work on form submission。
在我的ng-submit中,我必须添加$ event作为参数,将事件传递给我的提交函数,然后我可以执行event.preventDefault()以防止路由更改。不确定这是一个有角度的错误还是它的预期行为,但希望这会帮助其他人。
所以这是固定代码:
angular.module('myApp', [])
.controller('MyCtrl', function ($scope) {
$scope.submit = function(event) {
event.preventDefault();
};
});
<form ng-controller="MyCtrl" ng-submit="submit($event)">
<button>Submit</button>
</form>