加载模块时的角度误差[$ injector:modulerr]

时间:2017-11-14 15:06:52

标签: javascript angularjs internet-explorer

[更新]我发现该网站可以正常使用Microsoft Edge。 IE似乎是唯一有问题的人。

所以我遇到了一个问题,我的网站无法在Internet Explorer中加载并抛出此错误:

[$injector:modulerr] Failed to instantiate module necs due to:
Error: [$injector:modulerr] Failed to instantiate module necs.LandingModule.controller due to:
Error: [$injector:nomod] Module 'necs.LandingModule.controller' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument

该网站在Firefox和Chrome中完全加载,但拒绝在Internet Explorer中加载。我不确定问题是什么,因为'necs.LandingModule.controller'拼写正确且已加载。我已经尝试删除Controller中的一些代码以查看它是否会加载,希望我能找到IE不喜欢的代码片段,但我还没有成功地做到这一点。

如果您需要更多信息,请告诉我,我会根据需要提供。

CONTROLLER.JS

angular.module('necs.LandingModule.controller', [
                     'necs.FeaturedItemsModule.directives'])
.controller('LandingController', ['$scope', '$location', '$routeParams', '$window', 'ajaxUtil',
function($scope, $location, $routeParams, $window, ajaxUtil){

  $scope.landingProducts = [1,2,3,4,5,6];

  $scope.getFeaturedProducts = function() {
    ajaxUtil.get('/api/landingProducts', $scope, 'onGetFeaturedProducts');
  };

  $scope.onGetFeaturedProducts = function(response) {
    if (response) {
      $scope.landingProducts = response.data;
    }
  };

  $scope.getCatalogMailer = function(id){
    if (id == 'link1'){
        $window.open("link");
    }else if(id == 'link2'){
        $location.url('link');
    }else if(id =='link3'){
        $location.url('link');
    }else if(id =='link4'){
        $location.url('link');
    }else if(id =='link5'){
        $location.url('link');
    }
  };

  $scope.getFeaturedProducts();

  ga('send', 'pageview', {
  'title': 'landing page'
  });
}]);

INDEX.HTML

<!DOCTYPE html>
<html lang="en" ng-app="necs">
  <head>
    <meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1.0">
    <title>NECS</title>
    <link rel="icon" type="image/png" href="assets/images/icon.png" sizes="32x32" />

    <link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap-theme.min.css">
    <link rel="stylesheet" href="/css/app.css">
    <link href='https://fonts.googleapis.com/css?family=Oswald:300,400,700' rel='stylesheet' type='text/css'>

    <script src="/bower_components/angular/angular.js"></script>

     <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular-cookies.js"></script>


    <script src="/bower_components/angular-route/angular-route.js"></script>
    <script src="/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
    <script src="/bower_components/angular-strap/dist/angular-strap.min.js"></script>
    <script src="/bower_components/angular-strap/dist/angular-strap.tpl.min.js"></script>
    <script src="/bower_components/angular-sanitize/angular-sanitize.min.js"></script>
    <script src="/bower_components/jquery/dist/jquery.min.js"></script>
    <script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
    <script src="/bower_components/angularUtils-pagination/dirPagination.js"></script>

    <script src="/js/app.js"></script>
    <script src="/js/controllers.js"></script>
    <script src="/js/directives.js"></script>
    <script src="/js/services.js"></script>
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-67702514-1', {
        'cookieDomain': 'none'
      });
  </script>

  <base href="/" />

  </head>
  <body data-spy="scroll" data-offset="15">
    <div class="container">
      <header-directive></header-directive>
      <div ng-view >
      </div>
    </div>
      <div class="main-footer">
        <div class="container">
          <footer-directive></footer-directive>
        </div>
      </div>
  </body>
</html>

landing.html上

<div class="landing row">
  <div class="row">
    <div class="col-xs-12">
      <div class="well">
        <custom-order-directive></custom-order-directive>
        <featured-items-directive></featured-items-directive>
      </div>
    </div>
  </div>

 <div class="row">
  <div ng-repeat="item in landingProducts" class="col-sm-12 col-md-4">
    <div class="thumbnail main-container">
      <div class="image-container">
        <!--<img ng-click="onProductClick(item.id)" class="top-sellers" ng-src="{{item.img}}" />-->
        <img ng-src="{{item.image}}" />
      </div>
        <div class="caption text-center landinglinks">
        <h3 >{{item.header}}</h3>
        <!--<p ng-bind-html="item.text" ng-click="onProductClick(item.link)"></p>-->
        <p ng-bind-html="item.text" ng-click="getCatalogMailer(item.link)"></p>
  </div>
    </div>
  </div>
</div>

FRONT APP.JS

angular.module('necs', ['ngRoute',
                        'necs.LandingModule.controller',
                        'necs.CustomModeModule.controller',
                        'necs.CustomOrderModule.controller',
                        'necs.CustomPdfModule.controller',
                        'necs.CatalogModule.controller',
                        'necs.ProductModule.controller',
                        'necs.HeaderModule.directives',
                        'necs.FooterModule.directives',
                        'necs.MenuModule.directives',
                        'necs.DownloadsModule.controller',
                        'necs.InformationModule.controller',
                        'necs.LoginModule.controller',
                        'necs.AccountModule.controller',
                        'necs.AdministrationModule.controller',
                        ])
.config(['$routeProvider', function($routeProvider) {
  $routeProvider
    .when('/', {
      templateUrl: 'html/landing.html',
      controller: 'LandingController'
    })
    .when('/customMode', {
      templateUrl: 'html/customMode.html',
      controller: 'CustomModeController'
    })
    .when('/customOrder', {
      templateUrl: 'html/customOrder.html',
      controller: 'CustomOrderController'
    })
    .when('/customPdf', {
      templateUrl: 'html/customPdf.html',
      controller: 'CustomPdfController'
    })
    .when('/catalog', {
      templateUrl:'html/catalog.html',
      controller: 'CatalogController'
    })
    .when('/catalog/product', {
      templateUrl: 'html/product.html',
      controller: 'ProductController'
    })
    .when('/downloads', {
      templateUrl: 'html/downloads.html',
      controller: 'DownloadsController'
    })
    .when('/information', {
      templateUrl: 'html/information.html',
      controller: 'InformationController'
    })
    .when('/cart', {
      templateUrl: 'html/cart.html',
      controller: 'CartController'
    })
    .when('/login', {
      templateUrl: 'html/login.html',
      controller: 'LoginController'
    })
    .when('/account', {
      templateUrl: 'html/account.html',
      controller: 'AccountController'
    })
    .when('/administration', {
      templateUrl: 'html/administration.html',
      controller: 'AdministrationController'
    })
    .otherwise({
      redirectTo: '/'
    });

}]);

SERVER APP.JS

var express = require('express');
var path = require('path');
var mongoose  = require('mongoose');
var session = require('express-session');
var bodyParser = require('body-parser');
var flash = require('connect-flash');
var nodemailer = require('nodemailer');
var exphbs  = require('express-handlebars');
var hbs = require('nodemailer-express-handlebars');
var db = require('./db')();
var user = require('./user')();
var fs = require('fs');
var Cookies = require('cookies');

var Product = require('./product');
var Category = require('./category');
var Download = require('./download');
var Codes = require('./codes');
var Specsheet = require('./specsheet');
var app = express();

app.use(express.static(path.resolve(__dirname + '/../front/static')));

app.use(bodyParser.urlencoded({limit: '50mb'}));
app.use(bodyParser.json({limit: '50mb'}));

app.get('/qr/:qrcode', function (req, res) {
    var domain = 'domain.com/#/qr/';
    var qrcode = req.params.qrcode;

    res.redirect(domain+qrcode);
});

//login
app.use(flash());

app.get('/', function(req, res) {
  res.sendfile('index.html');
});

// parse application/json
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
var server = app.listen(80);

var config = {
  "USER": "user",
  "PASS": "password",
  "HOST": "127.0.0.1",
  "PORT": "22222",
  "DATABASE" : "database"
};

var dbPath  = "mongodb://" + config.USER + ":"+ config.PASS + "@"+ config.HOST + ":"+ config.PORT + "/"+ config.DATABASE;
mongoose.connect(dbPath);

db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
    console.log('connected successfully');
});


//landing products
app.get('/api/landingProducts',function(req,res) {

  var landingItems = {
      landing1: {
          image: "/assets/images/landing1.jpg",
          text: "text1",
          header: "header1",
          link: "link1"
      },
      landing2: {
          image: "/assets/images/landing2.jpg",
          text: "text2",
          header: "header2",
          link: "link2"
      },
      landing3: {
          image: "/assets/images/landing3.jpg",
          text: "text3",
          header: "header3",
          link: "link3"
      },
      landing4: {
          image: "/assets/images/landing4.jpg",
          text: "text4",
          header: "header4",
          link: "link4"
      },
      landing5: {
          image: "/assets/images/landing5.jpg",
          text: 'text5',
          header: "header5",
          link: "link5"
      },
      landing6: {
          image: "/assets/images/landing6.jpg",
          text: "text6",
          header: "header6",
          link: "link5"
      }
  };

  res.send(landingItems);

});

1 个答案:

答案 0 :(得分:3)

我在IE 11上测试过:

这就是我得到的:预期&#39;:&#39;在controllers.js(1551,3)

看起来你已经声明了3个额外的变量,但是不正确:

$scope.getWidthDropdown = {
    warr
};

另外还有两个。

您应该将其更改为

$scope.getWidhtDropdown = {
    warr: warr
};

我不确定这是否能解决问题。可能是红鲱鱼