Eu tenho um formulário no Angular que possui duas tags de botões. Um botão envia o formulário ng-click. O outro botão é apenas para navegação usando ng-click. No entanto, quando esse segundo botão é clicado, o AngularJS está causando uma atualização de página que aciona um 404. Soltei um ponto de interrupção na função e está acionando a minha função. Se eu fizer qualquer um dos seguintes, ele será interrompido:
- Se eu remover
ng-click, o botão não causará uma atualização da página. - Se eu comentar o código na função, ele não causará uma atualização da página.
- Se eu alterar a tag button para uma tag anchor (
<a>) comhref="", isso não causará uma atualização.
A última parece ser a solução mais simples, mas por que o AngularJS está executando algum código após a minha função que faz com que a página seja recarregada? Parece um bug.
Aqui está o formulário:
<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>
Aqui está o método do controlador:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};