2014-09-19 50 views
3

當我單擊表單中的提交按鈕時,它將添加一個?就在#so/app /#/ pageName變成/ app /?#/ pageName之前。這是正常的行爲嗎?代碼只是基本的東西。在表單提交中添加URL問號

angular.module('myApp', []) 
.controller('MyCtrl', function ($scope) { 
    $scope.submit = function() { 

    }; 
}); 

<form ng-controller="MyCtrl" ng-submit="submit()"> 
    <button>Submit</button> 
</form> 
+0

您可以添加提交功能? – 2014-09-19 16:33:17

+0

提交功能在那裏。它只是空的。我拿出了提交給我的服務器的代碼,因爲它不相關。它有或沒有它做同樣的事情。 – Brian 2014-09-19 16:40:14

+0

您是否嘗試從表單中移除'action'屬性? – Vadim 2014-09-19 18:37:22

回答

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> 
+0

不要忘記接受你的答案。 – isherwood 2014-10-27 19:38:06

+0

謝謝謝謝謝謝<3。 Pesky問號。 Angular應該解決這個問題。 – 2015-06-24 23:59:17