12

Czy możesz mi powiedzieć, dlaczego alerty są wyświetlane dwukrotnie po kliknięciu przycisku?Dlaczego alert jest wyświetlany dwa razy po kliknięciu przycisku?

tutaj jest mój plunker http://plnkr.co/edit/vtmYAG2d1gmnPjnxovJw?p=preview

/*global define, console */ 

define(['app'], function(app){ 
    'use strict'; 

    app.controller('LoginCtrl', ['$scope', function($scope) { 
     $scope.login = function() { 
      alert("Login is clicked") 
     }; 

    }]); 

}); 
+0

To dziwne. Wydaje się, że uruchamia się ng-click zarówno po mousedown i mouseup - jeśli klikniesz przycisk trzymając mysz w dół, odsuń mysz od przycisku, a następnie zwolnij kliknięcie, wystrzeliwuje tylko jedno kliknięcie. – Fissio

+0

więc czym jest praca dookoła ... czy jest jakaś możliwość, z której korzystam jonowo z wymaganiem js może być dlaczego tak działa – user944513

+0

możemy użyć requirejs z jonowym szkieletem – user944513

Odpowiedz

0

cykl trawienia przebiega w przynajmniej dwa razy przez angularjs. Prawdopodobnie powodem pojawienia się alarmu dwa razy jest cykl trawienny.

Ale inni mówili, żeby zmienić wersję, a otrzymasz alert tylko raz. Ale jeśli nie chcesz, aby zmienić wersję, istnieje obejście tego:

$scope.login = function() { 
    alert("Login is clicked"); 
    $scope.login = function(){ 
    return false; 
    } 
}; 

working demo

Ta metoda pozwala na wywołanie funkcji tylko raz. Może być pomocny dla innych, którzy chcą przerwać cykl trawienny.

Powiązane problemy