• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage AngularJS vor neuladen der Seite etwas ausführen.

nils320

Mitglied
Hallo,
ich programmiere gerade eine ElectronJS-Anwendung.
Für das laden von einer Seite benutzte ich AngularJs
renderer.js:

Javascript:
var app = angular.module("ACP-Desktop", ["ngRoute"]);



app.config(function($routeProvider) {

    $routeProvider
    .when('/',{
        templateUrl : "dashboard.html"
    })
    .when('/dashboard', {
        templateUrl : "dashboard.html"
    })
    .when('/applys', {
        templateUrl :"applys.html"
    })
    .when('/bans', {
        templateUrl : "bans.html"
    })
    .when('/nopermission', {
        templateUrl : "pagenotfound.html"
    })
    .when('/mutes', {
        templateUrl : "mutes.html"
    })
    .when('/usermanager', {
        templateUrl : "usermanager.html"
    })
    .when('/servermanager', {
        templateUrl : "servermanager.html"
    })
    .when('/settings', {
        templateUrl : "settings.html"
    })
    .when('/profil', {
        templateUrl : "profil.html"
    });
});

Ein Teil meiner main.html:
HTML:
<body g-app="ACP-Desktop">

Wie kann ich es jetzt machen, dass z.B. wenn die Seite : "/settings" bzw. settings.html entladen wird, dass dann eine Funktion ausgeführt wird, bevor dann "/dashboard" geladen wird?

in den Dateien (settings.html...) steht nur normaler HTML-Code ohne <head> oder <body> etc.

Viele Grüße
Nils
 
Werbung:
Wie kann ich es jetzt machen, dass z.B. wenn die Seite : "/settings" bzw. settings.html entladen wird, dass dann eine Funktion ausgeführt wird, bevor dann "/dashboard" geladen wird?

Dafür gibt es LifeCycle Hooks wie OnDestroy.

Ich habe kein Pattern dafür, weil ich seit 2 Jahren nur noch mit dem 'neuen' Angular arbeite. Möglich sollte es aber auch mit AngularJS sein. Einfach mal googlen.
 
Dafür gibt es LifeCycle Hooks wie OnDestroy.

Ich habe kein Pattern dafür, weil ich seit 2 Jahren nur noch mit dem 'neuen' Angular arbeite. Möglich sollte es aber auch mit AngularJS sein. Einfach mal googlen.

Kannst du mir vielleicht schicken, wie du das in dem 'Neuen' Angular machen würdest?

Viele Grüße
Nils
 
Werbung:
Javascript:
export class MyComponent implements OnDestroy {
    ngOnDestroy() {
        // do something
    }
}

Steht alles im Tutorial auf der offiziellen Seite.
 
Hallo nochmal,
ich binde ja per
Javascript:
$routeProvider
HTML-Seiten ein. Bei den eingebunden HTML-Seiten ist Socket.io implementiert.
Nur habe ich das Problem, dass beim laden einer neuen Seite per
Javascript:
$routeProvider
die alte Socket.io Connection nicht geschlossen wird. Wenn ich dann z.B. per Java-Server etwas broadcaste kommt es bei diesem Client mehrmals an, da die alte Connection ja noch nicht geschlossen wurde.
Kann mir da einer helfen?

Viele Grüße
Nils
 
Du lädst beim Wechsel der Route lediglich ein Template nach. Deshalb heißt das Ding ja auch $routeProvider. Es spielt sich aber alles innerhalb der index.html ab, ohne dass es zum Seitenreload kommt und die Connection zum Server geschlossen wird. Ein echter Reload beim Routenwechsel ließe sich per $location.reload() erzwingen, aber das würde dir wahrscheinlich nicht weiterhelfen.
 
Werbung:
Zurück
Oben