Ich habe ein Formular in Angular, das zwei Schaltflächen-Tags enthält. Eine Schaltfläche sendet das Formular weiter ng-click
. Die andere Schaltfläche dient ausschließlich zur Navigation ng-click
. Wenn Sie jedoch auf diese zweite Schaltfläche klicken, führt AngularJS eine Seitenaktualisierung durch, die eine 404 auslöst. Ich habe einen Haltepunkt in der Funktion gelöscht und er löst meine Funktion aus. Wenn ich eine der folgenden Aktionen ausführe, wird sie gestoppt:
- Wenn ich das entferne
ng-click
, bewirkt die Schaltfläche keine Seitenaktualisierung. - Wenn ich den Code in der Funktion auskommentiere, wird keine Seitenaktualisierung durchgeführt.
- Wenn ich das Schaltflächen-Tag in ein Anker-Tag (
<a>
) mit änderehref=""
, wird keine Aktualisierung durchgeführt.
Letzteres scheint die einfachste Problemumgehung zu sein, aber warum führt AngularJS nach meiner Funktion überhaupt Code aus, der das Neuladen der Seite bewirkt? Scheint wie ein Fehler.
Hier ist das Formular:
<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>
Hier ist die Controller-Methode:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};