2013-04-26 8 views
7

chcę zrobić kanciasty witryny czynienia z plikami, gdzie użytkownicy mogą poruszać się wokół w drzewie systemu plików (jak na github. github.com/angular/angular.js/tree/master/path/to/my/file.jsJak przechwytywać adresy URL z dowolną liczbą ukośników w pliku angular.js?

Chciałbym uchwycić path/to/my/file.js część adresu URL z kątowym trasy:

.when("/files/:myPath", templateUrl: "...", controller: "...") 

ale zgodnie z oczekiwaniami, :myPath pasuje tylko do następnego kreską.

jak mogę uchwycić wszystkie pozostałe części adresu URL, włącznie z dowolnej liczby ukośniki?


Znalazłem this question, który jest powiązany, ale różni się tym, że mój adres URL może mieć następującą wartość po mieszaniu kątowym, np. .../index.html#/files/path/to/my/file.

Odpowiedz

10

Od wersji Angular 1.1.5 można użyć *path - patrz here.

ścieżka może zawierać nazwane grupy zaczynające się od gwiazdy (* nazwa). Wszystkie znaki są przechowywane w pamięci pod nazwą
$routeParams pod pasującą nazwą.

Na przykład trasy jak /kolor /: kolor/largecode/* largecode/edit będzie pasował /kolor/brązowy/largecode/code/z/slashs/​​edit

dzień Angular 1.3, składnia brzmi: :path* (w komentarzu DRAX)

+1

Połów został wprowadzony w wersji 1.1.3, ale jest taki sam, jest dostępny tylko w gałęzi niestabilnej. Nice catch @tungd, nie znałem tego aż do teraz! –

+0

To brzmi jak to jest dokładnie to, o co prosiłem! – nh2

+3

Chciałbym tylko zaktualizować Angular 1.3. Powinieneś użyć: largecode * zamiast * largecode – DRAX

Powiązane problemy