anglejs - Aktualisieren, wenn auf den Link mit der aktuellen URL geklickt wird

Ich benutze routeProvider, um Steuerelemente und Vorlagen für meine URLs zu definieren.

Wenn ich auf den Link klicke, der dieselbe URL wie der tatsächliche Speicherort hat, passiert nichts. Ich hätte gerne diereload() Methode, die aufgerufen wird, wenn ein Benutzer auf einen solchen Link klickt, auch wenn sich der Standort nicht geändert hat. Mit anderen Worten, wenn ich den Ort auf den gleichen Wert setze, möchte ich, dass er sich so verhält, als würde ich ihn auf einen anderen Wert setzen.

Gibt es eine Möglichkeit, routeProvider oder locationProvider so zu konfigurieren, dass dies automatisch erfolgt? Oder was ist der richtige Ansatz dafür? Dies ist Standardverhalten in Roundtrip-Anwendungen, aber wie geht das in Angularjs?

Ich habe es weiter gefragtGoogle Groups auch.

AKTUALISIEREN:

Diese Frage wird immer häufiger gestellt, daher werde ich versuchen zu erklären, wie ich mein Problem gelöst habe.

Ich habe eine benutzerdefinierte Direktive zum Verknüpfen in meiner App erstellt, wie Renan Tomal Fernandes in Kommentaren vorgeschlagen hat.

angular.module('core.directives').directive('diHref', ['$location', '$route',
        function($location, $route) {
    return function(scope, element, attrs) {
        scope.$watch('diHref', function() {
            if(attrs.diHref) {
                element.attr('href', attrs.diHref);
                element.bind('click', function(event) {
                    scope.$apply(function(){
                        if($location.path() == attrs.diHref) $route.reload();
                    });
                });
            }
        });
    }
}]);

Die Direktive wird dann für alle Links in meiner App verwendet, für die ich diese Funktionalität haben möchte.

<a di-href="/home/">Home</a>

Was diese Direktive bewirkt, ist, dass sie diehref Attribut für Sie basierend aufdi-href Attribut so eckig kann damit umgehen wie immer und Sie können die URL sehen, wenn Sie den Mauszeiger über den Link halten. Wenn der Benutzer darauf klickt und der Pfad des Links mit dem aktuellen Pfad übereinstimmt, wird die Route neu geladen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage