web-dev-qa-db-fra.com

Le routage Angularjs ne fonctionne pas

Tout a bien fonctionné jusqu'à ce que j'essaie d'ajouter un routage. J'ai lu que Angularjs version 1.2+ nécessite 'ngRoute' comme dépendance (j'utilise la version 1.2.16). Je l'ai ajouté mais cela ne fonctionne toujours pas. Voici mes codes.

test.html (page principale)

<html ng-app="demoApp">
<head>
    <title></title>
</head>
<body>
    <p>Front Page</p>
    <div ng-view></div>
    <script src="angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-route.js"></script>
    <script src="testjs.js"></script>
</body>
</html> 

testjs.js

demoApp = angular.module('demoApp',['ngRoute']);

demoApp.config(function ($routeProvider) {

    $routeProvider.when('/', {
        controller: 'SimpleController',
        templateUrl: '/partials/first.html'
    });

});

var controllers = {};
controllers.SimpleController = function ($scope){
    $scope.first = "Info";
    $scope.customers=[
        {name:'jerry',city:'chicago'},
        {name:'tom',city:'houston'},
        {name:'enslo',city:'taipei'}
    ];
};
demoApp.controller(controllers);

first.html

<div>
    <input type="text" ng-model="name"/>
    </br>
    {{first}}
    </br> 
    <ul>
        <li ng-repeat="cust in customers | filter:name">{{cust.name | uppercase}} - {{cust.city}}</li>
    </ul>   
</div>
14
yellowbyte

Voici la configuration la plus basique possible, je vais essayer d'en créer une autre avec votre code: http://plnkr.co/edit/sN9TagVBOdX3mkrxaTiu?p=preview

[~ # ~] modifier [~ # ~] mis à jour avec l'exemple de code. Tout semble marcher?

EDIT 2 le problème est que OP n'exécutait pas de serveur Web. Ng-Route a besoin d'un serveur Web pour fonctionner correctement.

11
Yoeri

Mon routage ne fonctionnait pas car il y avait un point d'exclamation inséré dans l'url lorsque j'ai essayé de naviguer vers mes itinéraires. J'ai ajouté $locationProvider comme ça

app.config(function($routeProvider, $locationProvider) {
    $locationProvider.hashPrefix('');

pour supprimer le point d'exclamation et mes vues de modèle ont commencé à apparaître lorsque j'ai accédé à elles. J'ai trouvé la réponse ici Point d'exclamation après le hachage (#!) Dans l'application angularjs

7
gary69