2012-10-02 13 views
8

Tworzę aplikację do przeglądania zasobów, ale problem polega na tym, że próbowałem dopasować when("/!/:resourceUrl").AngularJS - Trasa - Jak dopasować gwiazdę (*) jako ścieżkę

Działa dobrze, jeśli adres URL zasobu jest podobny do /path, ale jak mogę utworzyć coś takiego jak /path/to/the/resource.
Nie wiem, ile ścieżek zajmie, więc nie mogę zrobić .when("/!/:path1/:path2/:path3").

Wszelkie pomysły?

Odpowiedz

12

Jak kątowa-1.2 można to zrobić:

when("/!/:resourceUrl*") 

http://code.angularjs.org/1.2.0/docs/api/ngRoute.$routeProvider

W szczególności dokumentacja podaje następujący przykład:

Na przykład trasy takie jak /color/:color/largecode/:largecode*\/edit będą pasować do /color/brown/largecode /code/with/slashs/edit i były oddechowe:

  • color: brown
  • largecode: code/with/slashs
4

Obecnie AngularJS nie obsługuje wyrażeń regularnych na trasach.

Sprawdź te linki: https://github.com/angular/angular.js/issues/918, https://github.com/angular/angular.js/pull/972

+0

Dzięki. Możesz zaproponować mi pomysł lub zarchiwizować mój cel. Mam tylko 2 trasy,/login i /!. Ścieżka /! /: Ścieżka_zdarzeń jest ścieżką do zasobu, który użytkownik chce zobaczyć, ale nie chcę tworzyć /!/Path2Fto2Fthe2Fresource, ponieważ jest on brzydki. – Diestrin

+0

Co masz na myśli mówiąc o zasobach? Czy to niektóre dane, które mają długi "brzydki" identyfikator? –

+0

Tak, cóż, zasób jest czymś w rodzaju adresu URL książki lub obrazu, moja aplikacja jest biblioteką, ale chcę mieć możliwość zrobienia czegoś takiego: http://myapp.com/#/!/javascript/basics /JS_01.pdf, dzięki czemu mogę uzyskać ten parametr i spojrzeć w tym kierunku, aby pokazać go użytkownikowi. Użytkownik może dodać zakładkę do tego adresu URL, aby umożliwić jej udostępnianie. – Diestrin

Powiązane problemy