【问题标题】:Angular JS and ngRoute, can't recognize moduleAngular JS 和 ngRoute,无法识别模块
【发布时间】:2015-12-22 01:51:00
【问题描述】:

这是我的 index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <link rel="stylesheet" type="text/css" href="xploresoftware.css">
  </head>
<body ng-app="myapp">
<nav role="navigation" class="navbar navbar-default navbar-fixed-top" id="navbar">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a href="#/" class="navbar-brand" id="logo"><img src="Images/Drawing.png"></a>
        </div>
        <!-- Collection of nav links and other content for toggling -->
        <div id="navbarCollapse" class="collapse navbar-collapse">
            <ul class="nav navbar-nav" id="subject">
                <li><a href="#/ece">Electrical Engineering</a></li>
                <li><a href="#/cs"> Computer Science</a></li>
                <li><a href="#/mech"> Mechanical Engineering</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li><a href="#/">Login</a></li>

            </ul>
        </div>
    </div>
</nav>



 <div class="container-fluid" style="margin-top:55px" >

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


 </div>


</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.min.js"></script>
  <script src="angularview.js"></script>

</body>
</html>

这是我的 angularview.js 文件

(function(){
var app=angular.module('myapp',['ngRoute']); 
 app.config([function($routeProvider){

    $routeProvider.when('/',{
        templateUrl:'home.html'
    })
    .when('/ece',{
        templateUrl:"ece.html"
    })
    .when('/cs',{
        templateUrl:"cs.html"
    })
    .when('/mech',{
        templateUrl:"mech.html"
    })
    .otherwise({
        redirectTo:"/"
    });
 }]);
})();

捕获的错误: 未捕获的错误:[$injector:modulerr]http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=myapp&p1=Error%3A%2…ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.4.8%2Fangular.min.js%3A19%3A463

【问题讨论】:

    标签: angularjs angularjs-ng-route


    【解决方案1】:

    此错误似乎是由缺少依赖项引起的。我看到您需要在您的应用模块中包含 de ngRoute 依赖项。

    将您的第一行更改为:

    var app=angular.module('myapp',['ngRoute']); 
    

    也尝试更改此行

    app.config(['$routeProvide', function($routeProvider){ ... }])
    

    编辑:

    看看这个 JSFiddle

    https://jsfiddle.net/relferreira/dzx8w38t/2/

    HTML:

    <div data-ng-app="app">
    
      <div data-ng-controller="MainController as main">
        {{main.test}}
      </div>
       <ul class="nav navbar-nav" id="subject">
         <li><a href="#/ece">Electrical Engineering</a></li>
         <li><a href="#/cs"> Computer Science</a></li>
         <li><a href="#/mech"> Mechanical Engineering</a></li>
      </ul>
      <div ng-view>  </div>
    
    </div>
    

    JS:

    angular.module('app', ['ngRoute']);
    
    angular.module('app')
        .config(config)
        .controller('MainController', mainController);
    
    
    config.$inject = ['$routeProvider'];
    function config($routeProvider){
    
        $routeProvider.when('/',{
            template:'<h1>home</h1>'
        })
        .when('/ece',{
            template:"<h1>ece</h1>"
        })
        .when('/cs',{
            template:"<h1>cs</h1>"
        })
        .when('/mech',{
            template:"<h1>mech</h1>"
        })
        .otherwise({
            redirectTo:"/"
        });
     }
    
    mainController.$inject = ['$scope'];
    
    function mainController($scope){
    
        var vm = this;
    
        vm.test = 'test'
    
    }
    

    【讨论】:

    • myapp 模块永远不会被调用
    • 再次尝试编辑
    • 我发现了问题,这是因为我在 chrome 中导入我的页面,它无法生成 XmlhTTP REQUEST,所以我在 mozzila 中使用它并且它可以工作
    猜你喜欢
    • 2020-10-24
    • 1970-01-01
    • 2017-07-16
    • 2022-01-22
    • 2021-11-01
    • 2016-07-08
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多