Angularjs Uncaught Error: [$injector:modulerr]

Angularjs Uncaught Error: [$injector:modulerr]

我无法弄清楚为什么我在没有注入所需模块时出现模块错误。这是一个 link 给我的笨蛋。 Plunker-UserApp

这是我浏览器控制台的完整错误。

VM677 angular.min.js:6 未捕获错误:[$injector:modulerr] http://errors.angularjs.org/1.4.5/$injector/modulerr?p0=myapp&p1=Error%3A%2…ogleapis.com% 2Fajax%2Flibs%2Fangularjs%2F1.4.5%2Fangular.min.js%3A37%3A180)

我正在尝试创建一个用户应用程序,它从拥有 json 对象的 mocker.io 网站获取用户。

关于用户应用程序:

它执行 3 个任务。

  1. 从 mocker 获取用户列表并将其显示为 table
  2. 创建并添加新用户
  3. 根据id获取用户

上述任务在服务"userService"中实现。然后将此服务注入到写在 "UserListController.js" 和 "AddUserController.js" 中的控制器组件中。该模块与路由配置一起在 script.js 中定义。用户列表视图和添加新用户视图位于各自独立的模板中。

UserService.js

//An Angular Service to retreive UserList from the backend
(function() {
  angular.module('myapp')
    .service('userService', ['$http', '$q', function($http, $q) {
      var usrSvc = this;

      //Function to get User List from the backend
      usrSvc.getUserList = function() {

        var defer = $q.defer();

        $http
          .get('http://mocker.egen.io/users')
          .then(function(response) {
            console.log(response.data);
            defer.resolve(response.data);
          }, function(error) {
            console.log(error.status);
            defer.reject(error.status);
          });
        return defer.promise;
      };

      usrSvc.addUser = function(newUser) {
        var defer = $q.defer();

        $http
          .post('http://mocker.egen.io/users', newUser)
          .then(function(response) {
            defer.resolve(response.status);
            console.log(response);
          }, function(error) {
            defer.reject(error.status);
            console.log(error);
          });
        //return defer.promise;
      };

    }]);
})();

AddUserController.js

(function(){
  angular
    .module('myapp')
    .controller('AddUserCtrl',AddUserCtrlfn);

    AddUserCtrlfn.$inject = ['userService'];

    function AddUserCtrlfn(userService){
      var addUserVm = this;

      userService.addUser(addUserVm.formData)
      .then(function(promiseStatus){
        alert('Success! User created!');
        console.log(promiseStatus);
      }, function(errorStatus){
        alert('An error occurred while creating the user');
        console.log(errorStatus);
      });
    }
})();

UserListController.js

(function() {
  angular.module('myapp')
    .controller('UserListCtrl', UserListCtrlfn);

    UserListCtrlfn.$inject = ['userService'];

    function UserListCtrlfn(userService) {
      var UserListVm = this;
      userService.getUserList()
        .then(function(promiseObj) {
          UserListVm.users = promiseObj;
        }, function(error) {
          console.log(error);
        });
    }
})();

更改 <script> 标记的顺序以便在使用前首先定义您的模块。

<script src="script.js"></script>
<script src="UserListController.js"></script>
<script src="AddUserController.js"></script>
<script src="UserService.js"></script>

remove first argument in config method.