2012-10-02 20 views
8

Estoy haciendo una aplicación de visor de recursos, pero el problema es que traté de hacer coincidir when("/!/:resourceUrl").AngularJS - Ruta - Cómo hacer coincidir estrella (*) como ruta

Funciona bien si la URL del recurso es algo así como /path, pero ¿cómo puedo hacer algo como un /path/to/the/resource.
No sé cuántas rutas tomará, así que no puedo hacer .when("/!/:path1/:path2/:path3").

¿Alguna idea?

Respuesta

12

A partir del angular-1.2 que puede hacer esto:

when("/!/:resourceUrl*") 

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

En particular, los documentos da el siguiente ejemplo:

Por ejemplo, las rutas como /color/:color/largecode/:largecode*\/edit coincidirán con /color/brown/largecode /code/with/slashs/edit y ex vías:

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

A partir de ahora, AngularJS no admite expresiones regulares en las rutas.

comprobar estos enlaces: https://github.com/angular/angular.js/issues/918, https://github.com/angular/angular.js/pull/972

+0

Gracias. Puede sugerirme una idea o cómo archivar mi objetivo. Solo tengo 2 rutas,/login y /! El /! /: ResourcePath es la ruta al recurso que el usuario desea ver, pero no quiero hacer un /!/Path2Fto2Fthe2Fresource porque es feo. – Diestrin

+0

¿Qué quiere decir decir recurso? ¿Es alguno de los datos que tiene su larga identificación "fea"? –

+0

Sí, bueno, el recurso es algo así como una URL de un libro, o imagen, mi aplicación es una biblioteca, pero quiero poder hacer algo como: http://myapp.com/#/!/javascript/basics /JS_01.pdf para que pueda obtener este parámetro y mirar en esta dirección para mostrárselo al usuario. El usuario puede marcar esta URL para compartirla. – Diestrin

Cuestiones relacionadas