问号添加在表单提交的URL中间

Bri*_*ian 3 angularjs

当我单击表单中的提交按钮时,它会添加一个?就在#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>
Run Code Online (Sandbox Code Playgroud)

Bri*_*ian 6

我终于找到了答案,感谢Angular JS不允许preventDefault或返回false来处理表单提交.

在我的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>
Run Code Online (Sandbox Code Playgroud)