angularjs module is loaded after ng-app causing nomod

148 views Asked by At

I have installed phantomjs (coz i'm trying to get the system to make my website in angular crawlable), and i'm stuck on a "nomod" error which occurs only on phantomjs server (the live version works perfectly fine).

<html lang="{{lang}}" itemscope itemtype="http://schema.org/WebPage" ng-app="myApp" class="no-js">
<base href="/">
 <head>
 <meta name="fragment" content="!">
 </head>
  <body>
  ....
    <!-- build:js(.) scripts/vendor.js -->
    <!-- bower:js -->
     <script src="bower_components/angular/angular.js"></script>
      ........
    <!-- endbower -->
    <script></script>
    ....
    <!-- endbuild -->

    <!-- build:js({.tmp,app}) scripts/scripts.js -->
      <script src="scripts/app.js"></script> 
      loading controllers
       ....
    <!-- endbuild -->

  </body>
</html>

For the app.js

'use strict';
angular
  .module('myApp', [
    'ngAnimate',
    'ngAria',
    ....
  ])
.filter()....
.config(function ($routeProvider, $stateProvider, $urlRouterProvider, $authProvider, UIRouterMetatagsProvider) {....})
.config(function($locationProvider) {
            // use the HTML5 History API
            $locationProvider.html5Mode(true);
            requireBase: false;
            $locationProvider.hashPrefix('!')
  });

When i access from phantomjs ng-app is called before myApp being initialized and i tried to start the app with manual bootstrapping without success. If i try to load the controllers without calling ng-app I still get the error because myApp module is somehow created after all controllers have been loaded.

Hope someone can help... Thank you very much.

1

There are 1 answers

0
bbjones On

I was also getting the nomod error. In my case it was because my controller had the "const" declaration in it.

Changing "const" to "var" resolved the problem.

My error was:

Error: [$injector:modulerr] http://errors.angularjs.org/1.3.15/$injector/modulerr?p0=myAppName&p1=[$injector:nomod] http://errors.angularjs.org/1.3.15/$injector/nomod?p0=myAppName

Here is a related post explaining the problem with PhantomJS (via Karma) and "const". https://github.com/karma-runner/karma/issues/1621