【问题标题】:AngularJS: Failed to instantiate module errorAngularJS:无法实例化模块错误
【发布时间】:2015-05-15 00:52:48
【问题描述】:

我知道已经有人问过这个问题,但我找不到我个人案例的答案。我敢肯定这是我没有注意到的一件愚蠢的事情,但我并没有摆脱它。

我将发布我拥有的所有代码(不是那么多),因为我找不到错误的真正根源。

这是我的 app.js 文件:

'use strict'; 

var myApp = angular.module('myApp', [
  'ngRoute',
  'appControllers'
]);

myApp.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/faq', {
    templateUrl: 'faq/faq.html',
    controller: 'FaqCtrl'
  }).
  when('/log', {
    templateUrl: 'log/log.html',
    controller: 'LogCtrl'
  }).
  [...]
  when('/settings', {
    templateUrl: 'settings/settings.html',
    controller: 'SettingsCtrl'
  }).
  otherwise({redirectTo: '/homepage'});
}]);

虽然这里是我持有控制器的地方,但 controllers.js:

'use strict';

/* Controllers */

var appControllers = angular.module('appControllers', []);

appControllers.controller('FaqCtrl', [function() {

}]);

appControllers.controller('HomepageCtrl', [function() {

}]);

[...]

appControllers.controller('SettingsCtrl', function($scope, $http) {
/*
  $scope.myData = {};
  $scope.myData = function(item, event) {

    var response = $http.get("myURL");

    response.success(function() {

      alert("ok");
    });

    response.error(function() {

      alert("error");
    }); 
*/
});

这里是 settings.html:

<div ng-controller="SettingsController" >
    <button ng-click="myData.doClick(item, $event)">Send AJAX Request</button>
    <br/>
    Data from server: {{myData.fromServer}}
  </div>

现在,如果我使用 SettingsCtrl 注释中的代码运行它,它工作正常,但如果我取消它,页面不会结束加载(即使我不去设置部分)并且错误是这样的:

Error: [$injector:modulerr] Failed to instantiate module myApp due to:
[$injector:modulerr] Failed to instantiate module appControllers due to:
[$injector:nomod] Module 'appControllers' 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.

我错过了什么?

我确信这将是一件愚蠢的事情,但我是 AngularJS 的新手。

提前致谢。

【问题讨论】:

  • 你是不是在这里打错了代码,或者函数(项目,事件)缺少“};”最后?
  • 原来如此,谢谢!

标签: javascript angularjs module controller dependencies


【解决方案1】:

当您取消注释时,大括号未正确闭合。

appControllers.controller('SettingsController', function($scope, $http) {

  $scope.myData = {};
  $scope.myData = function(item, event) {

    var response = $http.get("myURL");

    response.success(function() {

      alert("ok");
    });

    response.error(function() {

      alert("error");
    }); 
  }
});

http://plnkr.co/edit/4sltz2Bwai9zm9FLkyC7?p=preview

还有一个问题,控制器名称不匹配,但您可能已经弄清楚了。

【讨论】:

  • 谢谢,就像每次我都想知道我不明白什么,它只是一个括号。
【解决方案2】:

您的 index.html 中似乎没有包含控制器文件

【讨论】:

    【解决方案3】:

    你丢了一个“}”

    appControllers.controller('SettingsCtrl', function($scope, $http) {
      $scope.myData = {};
      $scope.myData = function(item, event) {
        var response = $http.get("myURL");
        response.success(function() {
          alert("ok");
        });
        response.error(function() {
          alert("error");
        });
      }
    });
    

    【讨论】:

    • 谢谢。总是这样结束。
    猜你喜欢
    • 1970-01-01
    • 2018-06-25
    • 2014-05-30
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    相关资源
    最近更新 更多