Mam formularz w Angular, który ma dwa znaczniki przycisków w nim. Jeden przycisk przesyła formularz na ng-click
. Drugi przycisk służy wyłącznie do nawigacji przy użyciu ng-click
. Jednak po kliknięciu tego drugiego przycisku AngularJS powoduje odświeżenie strony, które wyzwala 404. Zrzuciłem punkt przerwania w funkcji i uruchamia on moją funkcję. Gdybym wykonaj dowolną z następujących czynności, zatrzymuje:Kliknięcie przycisku w formularzu powoduje odświeżenie strony.
- Jeśli usunąć
ng-click
, przycisk nie powoduje odświeżania strony. - Jeśli skomentuję kod w funkcji, nie spowoduje to odświeżenia strony.
- Jeśli zmienię znacznik przycisku na znacznik zakotwiczenia (
<a>
) zhref=""
, to nie spowoduje to odświeżenia.
To ostatnie wydaje się najprostszym obejściem, ale dlaczego AngularJS uruchamia nawet dowolny kod po mojej funkcji, która powoduje przeładowanie strony? Wygląda jak błąd.
Oto 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>
Oto metoda kontroler:
$scope.showChangePassword = function() {
$scope.selectedLink = "changePassword";
};
Zobacz, czy jest to Twój problem https://github.com/angular/angular.js/issues/1238 (Niestety, nie wiem, mój sposób wokół github wystarczy być może stwierdzić, czy ta poprawka jest w wersji 1.0.1 czy nie). –
Widziałem to, ale nie zmieniam lokalizacji, więc nie sądzę, by miało to zastosowanie. O ile ten inny przycisk nie jest w jakiś sposób przyczyną jego przesłania, ale nie jest zdefiniowany jako typ przesyłania, a po zdjęciu przycisku ng, przycisk nie przesyła formularza. – chubbsondubs
Byłoby wspaniale, gdybyś mógł przedstawić działające demo tego problemu. Być może zaczynając od: [Angular Plnkr] (http://plnkr.co/edit/gist:3662656) –