0

我正在尝试选择 AngularJS 备份。我用以前版本的 AngularJS 和 RequireJS 创建了一个网站,但从来没有遇到过这个问题,我已经搜索过,但仍然无法让它工作,所以我正在联系。我正在尝试使用 RequireJS 2.1.15 和 AngularJS 1.3.11。尝试加载我的主页时,我得到以下信息:

Uncaught Error: [$injector:modulerr] Failed to instantiate module rehyveApp due to:
Error: [$injector:modulerr] Failed to instantiate module ngRoute due to:
Error: [$injector:nomod] Module 'ngRoute' 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.
http://errors.angularjs.org/1.3.11/$injector/nomod?p0=ngRoute
at http://127.0.0.1:64216/js/lib/angular.js:63:12
at http://127.0.0.1:64216/js/lib/angular.js:1764:17
at ensure (http://127.0.0.1:64216/js/lib/angular.js:1688:38)
at module (http://127.0.0.1:64216/js/lib/angular.js:1762:14)
at http://127.0.0.1:64216/js/lib/angular.js:4094:22
at forEach (http://127.0.0.1:64216/js/lib/angular.js:323:20)
at loadModules (http://127.0.0.1:64216/js/lib/angular.js:4078:5)
at http://127.0.0.1:64216/js/lib/angular.js:4095:40
at forEach (http://127.0.0.1:64216/js/lib/angular.js:323:20)
at loadModules (http://127.0.0.1:64216/js/lib/angular.js:4078:5)
http://errors.angularjs.org/1.3.11/$injector/modulerr?p0=ngRoute&p1=Error%3…dules%20(http%3A%2F%2F127.0.0.1%3A64216%2Fjs%2Flib%2Fangular.js%3A4078%3A5)
at http://127.0.0.1:64216/js/lib/angular.js:63:12
at http://127.0.0.1:64216/js/lib/angular.js:4117:15
at forEach (http://127.0.0.1:64216/js/lib/angular.js:323:20)
at loadModules (http://127.0.0.1:64216/js/lib/angular.js:4078:5)
at http://127.0.0.1:64216/js/lib/angular.js:4095:40
at forEach (http://127.0.0.1:64216/js/lib/angular.js:323:20)
at loadModules (http://127.0.0.1:64216/js/lib/angular.js:4078:5)
at createInjector (http://127.0.0.1:64216/js/lib/angular.js:4004:11)
at doBootstrap (http://127.0.0.1:64216/js/lib/angular.js:1446:20)
at Object.bootstrap (http://127.0.0.1:64216/js/lib/angular.js:1467:12)
http://errors.angularjs.org/1.3.11/$injector/modulerr?p0=rehyveApp&p1=Error…trap%20(http%3A%2F%2F127.0.0.1%3A64216%2Fjs%2Flib%2Fangular.js%3A1467%3A12)

这是我的 index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <title></title>

    <link rel="stylesheet" href="css/bootstrap.css">
    <link rel="stylesheet" href="css/bootstrap-theme.css">
</head>

<body>
    <div class="container">
        <a href="#/main">Load Main View</a>
    </div>

    <div class="container">
        <ng-view></ng-view>
    </div>

    <script src="js/require.js" data-main="js/main.js"></script>
</body>
</html>

这是我的 main.js:

require.config({
paths: {
    base: "/js",
    lib: "/js/lib"
},
shim: {
    'lib/bootstrap': {
        deps: ['lib/jquery']
    },
    'lib/angular': {
        deps: ['lib/jquery']
    },
    'lib/angular-route': {
        deps: ['lib/angular']
    },
    'lib/angular-resource': {
        deps: ['lib/angular']
    },
    'lib/ui-bootstrap': {
        deps: ['lib/angular']
    },
    'base/app': {
        deps: ['lib/angular', 'lib/angular-route']
    },
    'base/controllers/mainController': {
        deps: ['base/app']
    }
  }
});

define(['lib/jquery', 'lib/angular', 'lib/angular-route', 'lib/angular-resource', 'lib/ui-bootstrap', 'base/app', 'base/controllers/mainController'], function () {
angular.element(document).ready(function() {
     angular.module('rehyveApp', ['ngRoute']);
     angular.bootstrap(document, ['rehyveApp']);
   });
});

这是我的 app.js:

'use strict';

define(['lib/angular'], function () {
var rehyveApp = angular.module('rehyveApp', ['ngRoute'])
    .config(function ($routeProvider) {

        $routeProvider.when('/main',
            {
                templateUrl: 'templates/main.html',
                controller: 'mainController'
            });

        $routeProvider.otherwise({redirectTo: 'main'});


    });
return rehyveApp;
});

和我的 mainController.js:

'使用严格';

define(['base/app'], function (rehyveApp) {
var rehyveApp = angular.module('rehyveApp',[]);
rehyveApp.controller('mainController', ['$scope', function ($scope) {

    $scope.testdata = {
        name: 'mainController working'
    }
}]);
});

任何帮助将不胜感激。先感谢您。

4

2 回答 2

1

所以事实证明这是 angular-route.js 库的 1.3.11 版本的问题,他们刚刚发布了 1.3.12 并且在将其复制进去之后,现在一切正常。感谢大家对此进行调查。

于 2015-02-04T16:45:16.793 回答
0

你忘了'lib/angular-route'在你的defineat app.js。看到您正在使用ngRoute但未导入它。

define(['lib/angular','lib/angular-route'], function () {
于 2015-02-04T15:14:59.967 回答