angularjs - 在表单提交的网址中间添加问号

标签 angularjs

当我单击表单中的提交按钮时,它会添加一个 ?就在 # 之前,因此/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>

最佳答案

感谢Angular JS does not allow preventDefault or return false to work on form submission,我终于找到了答案.

在我的 ng-submit 中,我必须添加 $event 作为参数,该参数将事件传递给我的提交函数,然后我就能够执行 event 了。 PreventDefault() 以防止路由更改。不确定这是否是 Angular 错误或者是否是预期行为,但希望这对其他人有帮助。

所以这是固定代码:

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>

关于angularjs - 在表单提交的网址中间添加问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25937962/

相关文章:

javascript - 在 Angularjs 中显示独特的下拉选项

angularjs - Angular 在模糊时隐藏元素

字符串的Javascript数组转换为对象数组

angularjs - 将 'isLoading' 变量添加到 $resource 服务( Angular )

angularjs - ngToast 消息显示在模态弹出窗口后面

javascript - Angularjs,为什么这个 watch 在它的变量改变时没有反应?

javascript - 表格 td 标签中弹出框工具提示的问题

javascript - 如何在angularJS列表中添加项目?

angularjs - 当我将带有 ExpressJs API 的 NodeJs 发布到服务器时,它得到 404

javascript - Javascript 和 AngularJs 中的通用 foreach 循环