0

Ich habe den folgenden Code, wenn der Benutzer auf die Schaltfläche Speichern klickt, sollte es nichts tun, aber nur den Text der Schaltfläche zu speichern und dann machen behindert. Ich habe dies mit zwei Tasten und dem Controller-Code wie folgt erreicht.Ich muss eine 2 Sekunden Verzögerung einführen, wenn Benutzer auf Speichern im Winkel klicken

Das Problem damit ist, es zeigt die Schaltfläche Speichern auch nur für eine Sekunde, wenn ich auf Speichern während des Ladens der gespeicherten Schaltfläche klicken und dann die Schaltfläche zum Speichern verschwindet (nur flackert), ich will das nicht passieren . Was ist los mit dir? Auch, wie kann ich 2 Sekunden Verzögerung einführen, dann „Taste‚Speichern zeigen.

<button type="button" id="saveEnabled" ng-click="ctrl.onClick()" ng-if="ctrl.Status !== 'Clicked'">Save</button> 
    <button type="button" id="saveDisabled" disabled="disabled" ng-if="ctrl.Status === 'Clicked'">Saved</button> 


ctrl.onClick = function() { 
     ctrl.Status = 'Clicked'; 
    }; 

Antwort

0

Sie verwenden können setTimeout()

var delay=2000; //2 second

setTimeout(function() { //your code to be executed after 2 second }, delay);

1

Da Sie sind in Eckig, verwenden Sie die native $timeout Funktion.

ctrl.onClick = function() { 
$timeout(
    function(){ 
     ctrl.Status = 'Clicked'; 
    }, 2000); 
}; 

Hinweis: Sie haben $ timeout als dependecy zu injizieren, sondern auch setTimeout()

+0

Bark ausreichen würde, sorry das nicht funktionierte, aber das funktionierte ctrl.onClick = function() {$ Fenster .setTimeout (function() { $ scope. $ apply (function() { ctrl.Status = 'Geklickt'; }); }, 3000);} – Learner

+0

Allerdings habe ich immer noch das Problem, dass dieser idiotische Save-Button flimmerte :(Wie man das flackernde Uponing durch Klicken auf Save Button stoppt. Ich meine, der Save Button erscheint auch, wenn man auf Save und dann klickt Es verschwindet in Sekundenbruchteilen. Ich möchte keine schlechte Erfahrung mit dem Benutzer – Learner

+0

Ich schlage vor, in Angulars [ngAnimate] (https://docs.angularjs.org/api/ngAnimate) zu suchen. Obwohl Sie dies erreichen könnten, indem Sie ein hinzufügen Klasse, die "Übergang" hat – Barak