0

我已经安装了 phantomjs(因为我试图让系统使我的网站以角度可爬行),并且我陷入了仅在 phantomjs 服务器上发生的“nomod”错误(实时版本工作得很好)。

<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>

对于 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('!')
  });

当我在初始化 myApp 之前从 phantomjs 访问 ng-app 时,我尝试通过手动引导启动应用程序但没有成功。如果我尝试在不调用 ng-app 的情况下加载控制器,我仍然会收到错误消息,因为 myApp 模块是在加载所有控制器后以某种方式创建的。

希望有人可以提供帮助...非常感谢。

4

1 回答 1

0

我也得到了 nomod 错误。就我而言,这是因为我的控制器中有“const”声明。

将“const”更改为“var”解决了这个问题。

我的错误是:

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

这是一篇相关的文章,解释了 PhantomJS(通过 Karma)和“const”的问题。 https://github.com/karma-runner/karma/issues/1621

于 2016-09-07T20:27:49.907 回答