Angularに2つのボタンタグが含まれているフォームがあります。1つのボタンでフォームを送信しng-click
ます。もう1つのボタンは、純粋にを使用したナビゲーション用ng-click
です。ただし、この2番目のボタンがクリックされると、AngularJSによってページの更新が発生し、404がトリガーされます。関数にブレークポイントをドロップすると、関数がトリガーされます。次のいずれかを実行すると、停止します。
- を削除して
ng-click
も、ボタンを押してもページが更新されません。 - 関数のコードをコメントアウトしても、ページが更新されません。
- ボタンタグをでアンカータグ(
<a>
)に変更href=""
しても、更新されません。
後者は最も簡単な回避策のようですが、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";
};