0
votes

I am having an issue with an angular application. I am using bower. When I startup the server, I sometimes get this error:

Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to: Error: [$injector:modulerr] Failed to instantiate module ui.router due to: Error: [$injector:nomod] Module 'ui.router' is not available! You either misspelled the modul......2)

Then I sometimes get this error:

Uncaught SyntaxError: Unexpected identifier angular.js:573

Uncaught TypeError: Cannot read property 'module' of undefined angular-route.js:24

Uncaught SyntaxError: Unexpected token ILLEGAL angular-ui-router.js:455

Uncaught ReferenceError: angular is not defined ui-bootstrap-tpls-0.11.0.js:8

Uncaught ReferenceError: angular is not defined app.js:4

Uncaught ReferenceError: angular is not defined

Sometimes the css doesn't load completely either, but don't get a console error. Other times it works perfectly fine.

Here is my code setup

<body ng-app="myApp" class="ng-scope">
<div>
  <div ui-view>
  </div>
</div>

  <script src="bower_components/angular/angular.js"></script>
  <script src="bower_components/angular-route/angular-route.js"></script>
  <script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

  <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.11.0.js"></script> 
  <script src="js/app.js"></script>
  <script src="js/services.js"></script>
  <script src="js/controllers.js"></script>
  <script src="js/filters.js"></script>
  <script src="js/directives.js"></script>
  <script src="js/create.js"></script>
  <script src="js/view.js"></script>
  <script src="js/header.js"></script>
  <script src="js/form-service.js"></script>
  <script src="js/form-directive.js"></script>
  <script src="js/field-directive.js"></script>
  <script src="js/jquery.dcjqaccordion.2.7.js"></script>

</body>

here is my app.js where the app lives

var myApp = angular.module('myApp', [

  'ui.bootstrap.tabs',
  'ui.bootstrap.accordion',
  'ui.bootstrap.collapse',
  /*
  '$strap.directives',
  */
  'ui.router',
  'myApp.filters',
  'myApp.services',
  'myApp.directives',
  'myApp.controllers'


]);

Not too sure what to do. I thought loading angular then loading the other scripts after a time delay would fix it, but that wouldn't work.

1
And if you include your javascript src in the head instead of body ?? - Hackerman
Looks at your network tab of dev tools, see if the files are returning correctly. Also, its recommended to include jquery before angularjs. - TheSharpieOne

1 Answers

1
votes

Your problem is not using absolute URLs to .js files. Include a / in front of each path and it should fix your problem. For instance change:

    <script src="bower_components/angular/angular.js"></script>
  <script src="bower_components/angular-route/angular-route.js"></script>
  <script src="bower_components/angular-ui-router/release/angular-ui-router.js">

To

<script src="/bower_components/angular/angular.js"></script>
  <script src="/bower_components/angular-route/angular-route.js"></script>
  <script src="/bower_components/angular-ui-router/release/angular-ui-router.js">

Do this for all files.