【问题标题】:Module 'App' is not available! You either misspelled the module name or forgot to load it in AngularJS模块“应用程序”不可用!您要么拼错了模块名称,要么忘记在 AngularJS 中加载它
【发布时间】:2016-05-31 07:52:21
【问题描述】:

我正在使用 angularJS 开发一个简单的 Web 应用程序,但我遇到了这个我无法解决的问题。运行我的网站,我在控制台中收到此错误:

未捕获的错误:[$injector:modulerr] 无法实例化模块 App 由于:错误:[$injector:nomod] 模块“应用程序”不可用!你 要么拼错模块名称,要么忘记加载它。如果注册 一个模块确保您将依赖项指定为第二个 论据。

但我确定我没有拼错模块名称或忘记加载它。这是我的代码:

var App = angular.module('App', ['ngRoute', 'ngMaterial', 'ui-notification', 'ngFileUpload']);

App.run(['$rootScope', '$location', function($rootScope, $location) {
    console.log("TEST");
}]);
App.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    // TODO: routing
}]);

App.factory('file-uploader', ['Upload', function(Upload) {
    var uploadFile = function(file, callback) {
        var uploader;
        uploader = Upload.upload({
            url: 'SERVER URL' + '/upload-file',
            data: {
                image: file
            }
        });
        uploader.then(function(fileData) {
            return callback(null, fileData);
        });
        uploader.catch(function(error) {
            return callback(error, null);
        });
    };

    return uploadFile;
}]);

这是我的 index.html:

<!DOCTYPE html>
<html ng-app="App">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">
    <meta name="description" content="">
    <meta name="author" content="AUTHOR">
    <title>PROJECT NAME | Login</title>
    <link rel="stylesheet" href="/bower_components/angular-material/angular-material.css">
    <link rel="stylesheet" href="/bower_components/angular-ui-notification/dist/angular-ui-notification.min.css">
    <link rel="stylesheet" href="css/main.css" type="text/css">
  </head>
  <body ng-class="location" ng-cloak>
    <div ng-view></div>
    <script defer src="/bower_components/angular/angular.js"></script>
    <script defer src="/bower_components/angular-route/angular-route.js"></script>
    <script defer src="/bower_components/angular-aria/angular-aria.js"></script>
    <script defer src="/bower_components/angular-animate/angular-animate.js"></script>
    <script defer src="/bower_components/angular-messages/angular-messages.js"></script>
    <script defer src="/bower_components/angular-ui-notification/dist/angular-ui-notification.min.js"></script>
    <script defer src="/bower_components/angular-material/angular-material.js"></script>
    <script defer src="/bower_components/jquery/dist/jquery.js"></script>
  </body>
</html>

我已经用 bower 安装了所有的包...

谁能告诉我问题出在哪里,我该如何解决?

【问题讨论】:

  • 您是否在您的 html 中某处使用ng-app="App" 包含了该应用程序?
  • 这份清单可能会有所帮助:stackoverflow.com/a/26797874/930170
  • @thepio 当然,在我的 html 中我有 html(ng-app="App")
  • 您是否还确保拥有所有可用的外部资源?喜欢ngRoute 等?我让你的代码在 jsfiddle 中正常工作:jsfiddle.net/gxn9x9g4。我当然删除了除 ngRoute 之外的所有其他依赖项。
  • 您的

标签: javascript angularjs


【解决方案1】:

您似乎忘记了根据您提供的 HTML 添加自己的脚本。我只看到 bower_components 包含的东西

【讨论】:

    猜你喜欢
    • 2017-06-29
    • 1970-01-01
    • 2014-12-06
    • 2017-09-26
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多