2013-08-20 4 views
3

Nous utilisons Cordova/Phonegap avec AngularJs et essayons d'utiliser le routage; le routage ne fonctionne pas, il ne change pas de vue et génère l'erreur ci-dessous dans la console:Le routage Cordova + AngularJs ne fonctionne pas

Impossible de charger la page Web avec l'erreur: L'URL demandée n'a pas été trouvée sur ce serveur.

Notre contrôleur de routage est:

var app = angular 
.module('myApp', []) 
.config(function ($routeProvider, $compileProvider) { 

    $routeProvider.when('/', { 
     templateUrl: 'index.html' 
    }).when('/HomeScreen/:id', { 
     templateUrl: 'app/views/homeScreen.html' 
    }).otherwise({ 
     redirectTo: '/' 
    }); 

    $compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel):/); 
}); 

Lorsque nous changeons .otherwise({ redirectTo: '/HomeScreen/1'}) cela fonctionne mais les points d'ancrage dans index.html avec le même href (/ HomeScreen/1) ne fonctionnent pas.

Nous avons essayé le mode Html5 et le mode hashbang sans fonctionner.

Nous utilisons angularjs version 1.0.7.

+0

Si ce n'est pas trop bruyant, pouvez-vous s'il vous plaît inclure le contenu de 'index.html'? –

+0

En fait, cela fonctionne-t-il si vous changez votre '/ HomeScreen /: id' templateUrl' en' 'views/homeScreen.html'' (omettez la partie' 'app /' ')? –

+1

Attendez, quand '/' alors c'est votre index.html? Si index.html est partiel, alors quelle est la page principale? Exemple de code post sur jsfiddle? – Noogen

Répondre

0

Le problème est probablement que le #/est perturbé par certains navigateurs. Cela pourrait aider:

$locationProvider.html5Mode(true); 

Ceci utilisera l'état push pour effectuer la navigation à la place.

Questions connexes