emplacement $ / commutation entre html5 et hashbang mode / lien réécriture

J'étais sous l'impression que Angulaires de la réécrire les Url qui apparaissent dans href attributs de balises d'ancrage dans tempaltes, tels qu'ils fonctionnent qu'en mode html5 ou hashbang mode. Le documentation pour le service de localisation semble dire que le Lien HTML de Réécriture prend soin de la hashbang situation. Je voudrais donc s'attendre à ce que lorsqu'il n'est pas en mode HTML5, hache serait inséré, et en mode HTML5, ils ne le seraient pas.

Cependant, il semble qu'aucun de réécriture. L'exemple suivant ne me permet pas de simplement changer le mode. Tous les liens dans l'application devrait être réécrit à la main (ou dérivée à partir d'une variable lors de l'exécution. Suis-je obligé de réécrire manuellement toutes les Url en fonction de la mode?

Je ne vois pas de client-côté de la réécriture d'url en cours dans Angulaire 1.0.6, 1.1.4 ou 1.1.3. Il semble que tous href valeurs doivent être précédées de #/pour hashbang mode et les /pour le mode html5.

Est-il une configuration nécessaire à cause de réécriture? Suis-je une erreur de lecture de la documentation? Quelque chose d'aussi stupide?

Voici un petit exemple:

<head>
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.js"></script>
</head>

<body>
    <div ng-view></div>
    <script>
        angular.module('sample', [])
            .config(
        ['$routeProvider', '$locationProvider',
            function ($routeProvider, $locationProvider) {

                //commenting out this line (switching to hashbang mode) breaks the app
                //-- unless # is added to the templates
                $locationProvider.html5Mode(true);

                $routeProvider.when('/', {
                    template: 'this is home. go to <a href="/about"/>about</a>'
                });
                $routeProvider.when('/about', {
                    template: 'this is about. go to <a href="/"/>home</a'
                });
            }
        ])
            .run();
    </script>
</body>

Addendum: en relisant ma question, je vois que j'ai utilisé le terme de "réécriture" sans une abondance de clarté et quand j'ai voulu faire de la réécriture. La question est de savoir comment tirer Angulaire à réécrire les Url moment où il rend les chemins et comment l'obtenir pour interpréter les chemins d'accès dans le code JS de façon uniforme à travers les deux modes. Il est pas sur la façon de provoquer un serveur web pour faire en HTML5 compatible avec la réécriture de requêtes.

Voici la solution pour Angulaire de 1,6.

OriginalL'auteur laurelnaiad | 2013-05-21