Dies ist meine app.js-Datei. Ich muss auf die navigate
-Methode des Routers innerhalb der navigateToLogin
-Methode der LandingView
-Klasse zugreifen. Da der appRouter jedoch nach der Ansicht definiert ist, kann er den Router nicht innerhalb der Ansicht erkennen. Also muss ich einen Weg finden, global von jeder Klasse oder Methode auf den Router zuzugreifen. Wie kann ich dieses Problem umgehen?
Wenn Sie den Backbone-Code ein wenig untersuchen, werden Sie feststellen, dass die Implementierung von navigate
des Routers wiederum Backbone.history.navigate
:
Anstatt also den globalen Bereich explizit zu mucken, verwenden Sie Backbone.history.navigate
:
Wenn Sie appRouter
benötigen, um global zugänglich zu sein, müssen Sie es an ein globales Objekt anhängen. In Webbrowsern ist dies das Objekt window
.
Und auf es über das Fenster zugreifen:
%Vor%Die Verwendung von Globals kann zu Code führen, der schwer zu pflegen ist. Wenn Ihre App keine triviale Größe hat, sollten Sie einen Entkopplungsmechanismus wie das Mediatormuster verwenden.
Tags und Links javascript backbone.js singlepage