einen gemeinsamen Lader oder Fortschrittsbalken auf ein ganzes Projekt füge ich in AngularJS mein Projekt mache, wie kann ich einen gemeinsamen Loader oder Fortschrittsbalken auf ein ganzes Projekt mit CSS hinzufügen, anstatt Show/Verbergen des Blocks aufrufen Funktionen für die Div-Klasse jedes Controllers.wie kann ich
Antwort
Sie müssen einen Interceptor schreiben, um das zu tun. Um über Interceptor zu erfahren, siehe: https://docs.angularjs.org/api/ng/service/ $ http
Aber jemand hat bereits alle Arbeiten getan, also warum das Rad neu erfinden! http://chieffancypants.github.io/angular-loading-bar/
Bis Sie die Antwort erhalten Sie einen Warte Dialog setzen können .. nach Erhalt der Antwort, die Sie den Dialog verstecken .. Hier ist ein Link von einfachen Dialog mit Jquery waitingDialog
Und Sie können diesen Dialog werden am besten mit Winkel verwendet, und Sie können es entsprechend Ihrer Anforderung so viel Glück ändern ..
tun Sie es so etwas wie dieses
angular.module('app').factory('httpInterceptor', ['$q', '$rootScope',
function ($q, $rootScope) {
var loadingCount = 0;
return {
request: function (config) {
if(++loadingCount === 1) $rootScope.$broadcast('loading:progress');
return config || $q.when(config);
},
response: function (response) {
if(--loadingCount === 0) $rootScope.$broadcast('loading:finish');
return response || $q.when(response);
},
responseError: function (response) {
if(--loadingCount === 0) $rootScope.$broadcast('loading:finish');
return $q.reject(response);
}
};
}
]).config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push('httpInterceptor');
}]);
Dann Ereignis $rootScope
überall gebunden verwenden (bevorzugt in der Richtlinie zu verwenden, oder führen Block app.js):
$rootScope.$on('loading:progress', function(){
// show loading gif
});
$rootScope.$on('loading:finish', function(){
// hide loading gif
});
Sie mehr lesen kann es über hier codingsmackdown
Es wird nicht für eine Reihe von Controllern funktionieren. Ich brauche einen Loader, der automatisch aufgerufen werden muss, wenn HTTP-Anfragen ausgelöst werden, weil ich nicht für jeden Controller separat waitingDialog schreiben möchte. – Lakshman
können Sie dies anrufen, wenn Sie Ihren Dienst anrufen und bei Antwort können Sie es ausblenden. Für mich geht das. Kannst du mir sagen, wo genau es nicht für dich funktioniert? – Rakeschand
In unserem Projekt habe ich fast 50 Controller und jeder Controller hat 10 Service-Anrufe, wenn ich mag, wie Sie vorgeschlagen, ich muss WindowDialog für jeden Service-Aufruf zu verstecken/anzeigen, so das ist kein guter Ansatz.Ich brauche eine Lösung wie wenn eine http-Anfrage ausgelöst hat windowDialog sollte sichtbar sein und nach Erhalt der Antwort sollte es verstecken für alle Controller – Lakshman
Sie Winkel Laden verwenden können -bar http://chieffancypants.github.io/angular-loading-bar/#
Dies ist die beste Fortschrittsbalken im Hintergrund arbeiten.
Hier ist die Dokumentation http://angular-js.in/loading-bar/
Auch die Demo dort zur Verfügung steht.
Um Farbe der Ladebalken Verwendung css
#loading-bar .bar {
background-color: #2CA01C;
}
- 1. Wie kann ich
- 2. Wie kann ich
- 3. Wie kann ich Schaltflächen
- 4. Wie kann ich
- 5. wie kann ich postgres
- 6. Wie kann ich HttpURLConnection
- 7. Wie kann ich importieren?
- 8. Wie kann ich
- 9. Wie kann ich diese
- 10. Wie kann ich "(.). (.)" Verstehen?
- 11. Wie kann ich
- 12. Wie kann ich drehen?
- 13. Wie kann ich
- 14. Wie kann ich SQLSMO
- 15. Wie kann ich
- 16. Wie kann ich
- 17. Wie kann ich
- 18. Wie kann ich
- 19. Wie kann ich stornieren?
- 20. Wie kann ich einen OutputStream implementieren, den ich zurückspulen kann?
- 21. Wie kann ich dies entschlüsseln, damit ich es sehen kann
- 22. C#: Kann ich oder wie kann ich Methodenparametern Attribute zuweisen?
- 23. Wie kann ich ENOENT importieren, damit ich es zurückgeben kann?
- 24. Wie kann ich diese wenn ich dump?
- 25. Wie kann ich mit jquery
- 26. Wie kann ich Pufferüberlauf aufrufen?
- 27. Wie kann ich verspotten ActivityExecutionContext
- 28. Wie kann ich Benutzeraktivität protokollieren
- 29. Wie kann ich Variable übergeben
- 30. Wie kann ich probe probieren?
konnte nicht ändern Modul inspinia aufgrund instanziiert: Fehler: [$ Injektor: modulerr] http://errors.angularjs.org/1.4.7/$ injector/modulerr? p0 = o ...) bei Fehler (nativ) bei http: // localhost: 5000/js/plugins/common/angular.min.js: 6: 416 bei http: // localhost: 5000/js/plugins/common/angular.min.js: 38: 184 bei m (http: // localhost: 5000/js/plugins/common/angular.min.js: 7: 322) bei h (http : // localhost: 5000/js/plugins/common/angular.min.js: 37: 275) – Lakshman
Danke praveen ich bekomme diesen Fehler nach der Befolgung der Anweisungen bei Link http://chieffancypants.github.io/angular-loading-bar/ – Lakshman
Thanq funktioniert jetzt .. – Lakshman