2016-07-05 12 views
0

Ich habe die angular-block-ui module zu meinem Angular-Projekt hinzugefügt, aber es blockierte die Benutzeroberfläche nicht automatisch während meiner Ajax-Anfragen.blockUI nicht stoppen

Also habe ich versucht, es manuell zu verwenden, und es zeigt den Block Bildschirm, aber es wird nicht abgelehnt.

Also habe ich einen einfacheren Test gemacht, nur den Block zeigen und versuchen, es nach 2 Sekunden zu stoppen, und das gleiche Problem. Der Bildschirm wird blockiert, aber er verschwindet nicht.

Hier ist mein Code:

'use strict'; 

myApp.controller('LoginModalCtrl', function ($scope, blockUI) { 

    $scope.login = function() { 
     console.log("on submit"); 

     blockUI.start(); 

     setTimeout(function(){ 
      //do what you need here 
      blockUI.stop(); 
      console.log("finished") 
     }, 2000); 
    } 

}) 

;

Irgendeine Idee, was ich falsch mache?

Antwort

0

All diese "Blockierung" besteht darin, div auf Ihrer Seite zu platzieren. Das ist es.

Nun funktioniert es: http://plnkr.co/edit/HjXcgQD7JghFjtsOAEo0?p=preview

sollten Sie $timeout verwenden, nicht SetTimeout.

möchte nicht ins Detail gehen, aber es tut, dass intelligente Bibliothek thow zu sein scheinen ...

+0

Danke für sie antworten Petr. Ich benutze angular-block-ui, das ja der jquery ähnlich ist, aber es sollte vollautomatisch sein, also würde ich mir keine Sorgen machen müssen, Modal bei jeder Anfrage anzuzeigen/zu verstecken. – rsc

0

Sie $timeout verwenden sollten, nicht SetTimeout.

'use strict'; 
myApp.controller('LoginModalCtrl', function ($scope, blockUI, $timeout) { 

    $scope.login = function() { 
     console.log("on submit"); 

     blockUI.start(); 

     $timeout(function(){ 
      //do what you need here 
      blockUI.stop(); 
      console.log("finished") 
     }, 2000); 
    } 

}) 
Verwandte Themen