J'ai un formulaire en angulaire qui contient deux balises de boutons. Un bouton soumet le formulaire ng-click
. L'autre bouton est uniquement destiné à la navigation ng-click
. Cependant, lorsque ce deuxième bouton est cliqué, AngularJS provoque une actualisation de page qui déclenche un 404. J'ai supprimé un point d'arrêt dans la fonction et il déclenche ma fonction. Si je fais l'une des actions suivantes, cela s'arrête:
- Si je supprime le
ng-click
, le bouton ne provoque pas une actualisation de la page. - Si je commente le code dans la fonction, cela ne provoque pas un rafraîchissement de la page.
- Si je change la balise de bouton en balise d'ancrage (
<a>
) avechref=""
, cela ne provoque pas de rafraîchissement.
Ce dernier semble être la solution de contournement la plus simple, mais pourquoi AngularJS exécute-t-il même du code après ma fonction qui provoque le rechargement de la page? On dirait un bug.
Voici le formulaire:
<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>
Voici la méthode du contrôleur:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};