2017-04-05 5 views
0

Je travaille sur ma première application. Quand je l'ouvre dans le navigateur Web, je reçois cette erreur: Uncaught ReferenceError: contrôleur n'est pas défini à app.js: 3 à app.js: 15routeProvider ne fonctionne pas et contrôleur non défini en utilisant angularjs 1.5

J'ai eu cette erreur après avoir créé le fichier et app.js essayé de lier mon controller.js à elle. Aussi le routeProvider ne semble pas encore fonctionner. Et mes espaces réservés ont cessé de fonctionner, ce qui a fonctionné avant. J'ai simplifié mon code pour le rendre lisible. J'ai plus de fichiers html et j'utilise bootstrap en combinaison avec JQuery et CSS. Est-ce que quelqu'un sait ce qui ne va pas ici?

app.js

(function(){ 

    var myApp = angular.module('myApp',  ['ngRoute']).controller('controller', controller) 

    .config(function($routeProvider, $locationProvider){ 
    $locationProvider.html5Mode(true); 
    $routeProvider 
     .when('/main', { 
      templateUrl: '../main.html', 
       controller: 'controller' 
     }) 
     .otherwise({redirectTo: '../main'}); 

}); 
})(); 

controller.js

 (function() { 
     angular.module('controller', ['ngRoute']) 
      .controller('controller', ['$scope', function ($scope) { 
     }]); 
    })(); 

index.html
<!DOCTYPE html> 
<html data-ng-app = "myApp"> 

<head> 
<meta charset="utf-8"/> 
<title> Who Brings What </title> 
</head> 

<body> 
<div class="container"> 
    <nav class="navbar navbar-default"> 
/*more code here */ 
    </nav> 
</div> 

<div data-ng-view></div> 

<script  src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"> </script> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular- route.js"></script> 
<!--<script  src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular- route.js"> </script>--> 
<script src = "../controller.js"></script> 
<script src = "../app.js"></script> 

</body> 

</html> 

main.html

<div> 
    Main Body 
</div> 
+0

trop d'erreurs dans ce code –

Répondre

0

Il y a peu de problèmes avec votre code,

(i) Puisque vous avez contrôleur défini séparément dans un seul fichier, vous pouvez supprimer en toute sécurité à partir du module initial.

function(){ 
var myApp = angular.module('myApp',['ngRoute']) 
myApp.config(function($routeProvider, $locationProvider){ 
    $locationProvider.html5Mode(true); 
    $routeProvider 
     .when('/main', { 
      templateUrl: './main.html', 
       controller: 'controller' 
     }) 
     .otherwise({redirectTo: '/main'}); 
}); 
})(); 

(ii) Vous n'avez pas besoin d'avoir ngRoute injecté deux fois, vous pouvez simplement utiliser le module déclaré globalement

(function() { 
      app.controller('controller', ['$scope', function ($scope) { 
     }]); 
})(); 

DEMO