【问题标题】:Routeprovider Angular JS UpdateRouteprovider Angular JS 更新
【发布时间】:2020-05-02 15:04:10
【问题描述】:

我有一段来自移动网站的代码,它曾经可以完美运行。

document.addEventListener('deviceready', function() {
    // launch
}, false);

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

app.config(function($routeProvider){
    $routeProvider
        when('/home', {templateUrl: 'views/home.html'})
        .when('/about', {templateUrl: 'views/about.html'})
        .otherwhise({redirectTo: '/home'})
});

我更新到较新版本的 angular,但出现错误。 我在其他线程上发现 ngRoute 现在与 angular.js 是分开的,所以我添加了它。

<script type="text/javascript" src="js/angular.js"></script>
<script type="text/javascript" src="js/angular-route.js"></script>

现在我的错误是:

未捕获的错误:[$injector:modulerr] 无法实例化模块应用程序,原因是: 错误:[$injector:unpr] 未知提供者:$routeProvider

我不明白为什么现在我已经添加了角度路由脚本 $routeProvider 仍然不知道。

我尝试了在此处找到的几个修复,但无法使其正常工作。关于我错过了什么的任何想法?

谢谢。

【问题讨论】:

    标签: angularjs ngroute


    【解决方案1】:

    ngRoute 现在与 angular.js 分离,因此要使用它,您必须将其作为依赖项注入,如下所示:

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

    至于如下错误

    未捕获的错误:[$injector:modulerr] 无法实例化模块应用程序,原因是:错误:[$injector:unpr] 未知提供者:$routeProvider

    通常,由于某种原因没有加载angular-route.js时会出现此错误。

    上述项目的 Angular 及其模块的版本不匹配,例如:

    <script src="https://code.angularjs.org/1.4.0-beta.6/angular.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>
    

    所以使这些版本匹配。他们应该是.../1.6.4/angular.js.../1.6.4/angular-route.js

    【讨论】:

    • 感谢您的回答。我试过了,我有另一个错误:angular.js:138 Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: ReferenceError: when is not defined.
    猜你喜欢
    • 2015-09-05
    • 1970-01-01
    • 2013-07-03
    • 2016-04-09
    • 1970-01-01
    • 2014-07-07
    • 2015-07-12
    • 2013-10-30
    • 1970-01-01
    相关资源
    最近更新 更多