我在Angular中有一個表單,其中有兩個按鈕標籤。一個按鈕在ng-click
上提交表格。另一個按鈕純粹用於導航,使用ng-click
。但是,當點擊第二個按鈕時,AngularJS會導致頁面刷新,從而觸發404頁面。我已經在函數中刪除了一個斷點,並觸發了我的函數。如果我執行以下任何操作,它將停止:單擊表單中的按鈕會導致頁面刷新
- 如果我刪除
ng-click
,則該按鈕不會導致頁面刷新。 - 如果我註釋掉函數中的代碼,它不會導致頁面刷新。
- 如果我將按鈕標記更改爲
href=""
的定位標記(<a>
),則不會導致刷新。
後者似乎是最簡單的解決方法,但爲什麼AngularJS甚至在導致頁面重新加載的函數之後運行任何代碼?看起來像一個錯誤。
這裏是形式:
<form class="form-horizontal" name="myProfile" ng-switch-when="profile">
<fieldset>
<div class="control-group">
<label class="control-label" for="passwordButton">Password</label>
<div class="controls">
<button id="passwordButton" class="secondaryButton" ng-click="showChangePassword()">Change</button>
</div>
</div>
<div class="buttonBar">
<button id="saveProfileButton" class="primaryButton" ng-click="saveUser()">Save</button>
</div>
</fieldset>
</form>
這裏是控制器方法:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};
看看這是你的問題https://github.com/angular/angular.js/issues/1238 (不幸的是,我不知道我身邊的github的方式足以被能夠判斷這個修復是否在1.0.1版本中)。 –
我看到一個,但我沒有改變位置,所以我不認爲它適用。除非這個按鈕以某種方式導致它提交,但它沒有被定義爲提交類型,並且當我脫離ng-click時,按鈕不會提交表單。 – chubbsondubs
這將是偉大的,你可以提供這個問題的工作演示。也許從以下開始:[Angular Plnkr](http://plnkr.co/edit/gist:3662656) –