2013-10-02 14 views
12

Coś w rodzaju: link: function($scope, element, attrs, $location) {

Czy to możliwe?

Odpowiedz

23

W deklaracji tej dyrektywy wstrzyknąć usługę lokalizacyjną.

app.directive('myDirective', ['$location', function(location){ 

return { 
    link: function(scope, elem, attrs){ 
    //things happen here 
    location.url('/'); 
    } 
}; 
}]); 

Jeśli próbujesz uzyskać bieżącą lokalizację, użyj opcji location.path() lub, alternatywnie, skorzystaj z usługi $ route. Informacje na temat obu.

  1. http://docs.angularjs.org/api/ngRoute $ trasa
  2. http://docs.angularjs.org/api/ng $ lokalizacja
+0

Lokalizacja nie aktualizuje się po zmianie na inną stronę. – Shamoon

+0

Czy próbujesz uzyskać lokalizację, w której się znajdują, korzystając z usługi lokalizacyjnej? – Fourth

+0

Tak, proszę. To jest cel – Shamoon

3

myślał wstrzykiwanie usługę do dyrektywy nadal pobiera niezdefiniowane w funkcję łącza, do tego trzeba użyć

.
location.hash = "#/path_name"; 

w funkcji łącza będzie działać

Powiązane problemy