Al hacer clic en un botón dentro de un formulario, se actualizará la página.

Tengo un formulario en Angular que tiene dos etiquetas de botones en él. Un botón envía el formulario enng-click. El otro botón es puramente para navegación usandong-click. Sin embargo, cuando se hace clic en este segundo botón, AngularJS provoca una actualización de la página que activa un 404. He eliminado un punto de interrupción en la función y está activando mi función. Si hago algo de lo siguiente, se detiene:

Si quito elng-click, el botón no causa una actualización de la página.Si comento el código en la función, no se produce una actualización de la página.Si cambio la etiqueta del botón a una etiqueta de ancla (<a>) conhref="", entonces no causa una actualización.

La última parece ser la solución más sencilla, pero ¿por qué AngularJS ejecuta cualquier 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";
};

Respuestas a la pregunta(9)

Su respuesta a la pregunta