簡體   English   中英

AngularJS routeprovider注入錯誤

[英]AngularJS routeprovider injection error

我正在學習AngularJS,我現在正在嘗試$routeProvider ,但我無法讓它工作。

index.html

<!DOCTYPE html>

<html ng-app="App">
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js"></script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular-route.min.js"></script>
        <script type="text/javascript" src="scripts/controllers.js"></script>
    </head>
    <body>
        <div ng-view></div>
    </body>
</html>

view.html

<p>Hello World!</p>

controllers.js

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

app.config(
    function($routeProvider){
        $routeProvider.when("/something",{
            templateUrl: "view.html",
            controller: "MyController"
        })
        .otherwhise({
            redirectTo: "/"
        });
    }
);

function MyController($scope){

}

每當我運行它時,我會收到一條錯誤消息

Uncaught Error: [$injector:modulerr]

我怎么解決這個問題?

.otherwhise改為.otherwise

遇到這些問題時的一個好習慣是嘗試Angular的非縮小版本。

未縮小的錯誤更有幫助:

未捕獲的錯誤:[$ injector:modulerr]由於以下原因無法實例化模塊App:TypeError:Object#沒有方法'otherwhise'

解決方案:在路由配置上創建$ inject屬性,如下所示: -

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

(function (app) {
    var routeConfig = function($routeProvider){
        $routeProvider.when("/something",{
            templateUrl: "view.html",
            controller: "MyController"
        })
        .otherwhise({
            redirectTo: "/"
        });
    };
    routeConfig.$inject = ['$routeProvider'];
    app.config(routeConfig);
})(angular.module("App"));

當js縮小時,AngularJS現在能夠成功注入$ routeProvider。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM