Angular içinde iki düğme etiketleri olan bir form var. Bir düğme formu gönderir ng-click
. Diğer düğme sadece navigasyon içindir ng-click
. Ancak, bu ikinci düğme tıklandığında, AngularJS, bir 404'ü tetikleyen bir sayfa yenilemesine neden oluyor. İşlevde bir kesme noktası bıraktım ve işlevimi tetikliyor. Aşağıdakilerden herhangi birini yaparsam durur:
ng-click
Düğmesini kaldırırsam, düğme sayfanın yenilenmesine neden olmaz.- İşlevdeki kodun yorumunu yaparsam sayfanın yenilenmesine neden olmaz.
- Düğme etiketini bir tutturma etiketine (
<a>
) değiştirirsemhref=""
yenilemeye neden olmaz.
İkincisi en basit geçici çözüm gibi görünüyor, ancak neden AngularJS sayfamın yeniden yüklenmesine neden olan işlevimden sonra herhangi bir kodu çalıştırıyor? Bir böcek gibi görünüyor.
İşte form:
<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>
Denetleyici yöntemi şöyledir:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};