Ich habe eine kurze Frage über das Routen einer Route durch eine benutzerdefinierte Anweisung. Ich habe eine Menüleiste eingerichtet und eine Link-Funktion eingerichtet. Alles in dieser Funktion funktioniert korrekt, aber das chaning der URL durch die $location.path
nicht. Auch nach der Verwendung von $rootScope.apply
ändert sich nichts.AngularJs Pfad nicht ändern, auch nach dem Anwenden
define([
'../module',
'../namespace'
],
function (module, namespace) {
module.directive(namespace + '.menubarDirective', function ($location, $rootScope) {
return {
restrict: 'EA',
replace: 'true',
templateUrl: 'scripts/app/menubar/views/menubar.html',
scope: {},
controller: function() {
},
link: function (scope, element, attrs) {
$("#menubarStoreButton").click(function() {
$('.active').removeClass('active');
$(this).addClass('active');
$location.path('/store');
$rootScope.$apply();
})
}
}
});
});
Um klar zu sein, verwende ich requirejs
und $ Lage und $rootScope
definiert sind. Das Seltsame ist, $location.path()
vor dem Ersetzen gibt einen leeren Pfad. Außerdem funktioniert die Platzierung der Klasse "active" wie beabsichtigt.
Danke.
danach versucht, erhalte ich Der Fehler, dass $ timeout nicht definiert ist. – user3197307
inject $ timeout in Ihrer Direktive, wo Sie haben $ location – Disha
Sorry, ich fühle mich jetzt sehr dumm. Ich habe vergessen, $ Timeout als Parameter zu deklarieren. jetzt funktioniert es wie vorgesehen! – user3197307