Tengo un formulario en Angular que tiene dos etiquetas de botones. Un botón envía el formulario ng-click. El otro botón es solo para navegación ng-click. Sin embargo, cuando se hace clic en este segundo botón, AngularJS está causando una actualización de la página que activa un 404. He dejado caer un punto de interrupción en la función y está activando mi función. Si hago algo de lo siguiente, se detiene:
- Si elimino el
ng-click, el botón no causa una actualización de la página. - Si comento el código en la función, no se actualiza la página.
- Si cambio la etiqueta del botón a una etiqueta de anclaje (
<a>) conhref="", entonces no causa una actualización.
Esta última parece ser la solución más simple, pero ¿por qué AngularJS incluso ejecuta algún código después de mi función que hace que la página se vuelva a cargar? Parece un error.
Aquí está la forma:
<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>
Aquí está el método del controlador:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};