Passer URL $routeParam en application AngularJS

Comment puis-je passer l'URL réelle (avec des barres obliques, des virgules, etc.) $routeParam à AngularJS App?

cela va fonctionner:
http://paprikka.github.io/le-bat/#/preview/asdadasda

ce ne sera pas:
http://paprikka.github.io/le-bat/#/preview/http://page.com

ne le fera ce:
http://paprikka.github.io/le-bat/#/preview/http%3A%2F%2Fpage.com

ou ce:
http://paprikka.github.io/le-bat/#/preview/?url=http%3A%2F%2Fpage.com

Détails

AngularJS mécanisme de routage, de par sa conception ne permet pas de passer des chaînes de caractères avec des barres obliques, comme les paramètres de la requête. Je peux comprendre le raisonnement derrière cette décision, nous ne voulons pas créer un serveur sans état (stateless ici.

Cependant, il ya encore des cas lors de l'utilisation de différents séparateurs ou des expressions régulières dans les itinéraires peuvent être nécessaires.

J'ai voulu créer une application qui prend une url de hachage paramètre de chaîne et les charges de son contenu d'une iframe (lien ici). Les itinéraires sont mis en place dans jolie manière standard (je suis en utilisant Coffeescript, mais cet extrait ne diffère pas de la pure js):

$routeProvider
  .when('/preview/:src', {templateUrl: 'partials/preview.html',
  controller: 'PreviewCtrl'})
  .when('/preview', {templateUrl: 'partials/preview.html',
  controller: 'PreviewCtrl'})

Bien sûr, je peux charger l'url de hachage avant AngularJS obtient bootstrap et puis la passer à la bibliothèque, mais ce serait bien si je pouvais également mise à jour en cours de route paramètre lors de la modification de données dans le champ d'application - c'est pourquoi je pense qu'il est mieux de ne pas éviter AngularJS API.

Désolé de ne pas obtenir ce qui est la question?
Hm.. j'ai mis à jour la question avec une plus laconique description du problème. Regardez le lien que j'ai ajouté (j'espère que cela ne sera pas considéré comme du spam:))
Ne pourriez-vous utiliser la requête-param style de codage? Comme http://example.com/#/preview/?url=http://page.com. Voir aussi: docs.angularjs.org/api/ng.$routeParams
Eh bien, je ne voudrais pas lui demander si je pouvais:) Avez-vous vérifier la démo? Et, bien sûr - j'ai lu les docs.
Ah, bien sûr, le problème est ici! Avez-vous essayé de se soustraire à l'url avec encodeURIComponent? Résultats dans quelque chose comme http://example.com/#/preview/?url=http:%3A%2F%2Fpage.com

OriginalL'auteur Rafal Pastuszak | 2013-04-27