角错误:错误:[$ injector:unpr]未知提供者:$ stateProvider

我已阅读了有关该主题的其他相关主题,并尝试了他们推荐的解决方案,但我无法弄清楚。 据我所知,ngRoute通过标签正确地链接到项目,然后作为依赖注入。 我已经尝试了很多不同的东西(比如使用ui-router)而没有任何东西可以工作。 任何帮助将非常感激!

完整的错误是:

    Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to:
Error: [$injector:unpr] Unknown provider: $stateProvider
http://errors.angularjs.org/1.4.5/$injector/unpr?p0=%24stateProvider
    at REGEX_STRING_REGEXP (http://localhost:8000/static/bower_components/angular/angular.js:68:12)
    at http://localhost:8000/static/bower_components/angular/angular.js:4284:19
    at getService (http://localhost:8000/static/bower_components/angular/angular.js:4432:39)
    at Object.invoke (http://localhost:8000/static/bower_components/angular/angular.js:4464:13)
    at runInvokeQueue (http://localhost:8000/static/bower_components/angular/angular.js:4379:35)
    at http://localhost:8000/static/bower_components/angular/angular.js:4388:11
    at forEach (http://localhost:8000/static/bower_components/angular/angular.js:336:20)
    at loadModules (http://localhost:8000/static/bower_components/angular/angular.js:4369:5)
    at createInjector (http://localhost:8000/static/bower_components/angular/angular.js:4294:11)
    at doBootstrap (http://localhost:8000/static/bower_components/angular/angular.js:1655:20)
http://errors.angularjs.org/1.4.5/$injector/modulerr?p0=myApp&p1=Error%3A%2…host%3A8000%2Fstatic%2Fbower_components%2Fangular%2Fangular.js%3A1655%3A20)

index.html的:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body ng-app="myApp">

    <div ng-controller="MainCtrl">
        {{ test }}
    </div>

    <script src="static/bower_components/angular/angular.js"></script>
    <script src="static/bower_components/angular-route/angular-route.min.js"></script>
    <script src="static/components/app.js"></script>
</body>
</html>

app.js:

'use strict';

function() {
    angular.module('myApp', ['ngRoute'])
        .controller('MainCtrl', function ($scope) {
            $scope.test = 'hello world';
        });
})();

这不是路由问题。 你的app.js中缺少括号,你的代码应该是这样的。

'use strict';

(function () {
    angular.module('myApp', ['ngRoute'])
        .controller('MainCtrl', function ($scope) {
            $scope.test = 'hello world';
        });
})();

我认为ngRoute(angular-route.js)使用提供者$ routeProvider,并且ui-router(angular-ui-router.js)使用提供者$ stateProvider。

看看这个答案。 angular-route和angular-ui-router有什么区别?

如果是这种情况。 解决方案1.将脚本从angular-route.js更改为angular-ui-router.js解决方案2.将提供者更改为$ routeProvider

希望能帮助到你


如果上述所有答案都失败了,只需尝试一下。

我认为问题在于包含的脚本...

解决方案1:将angular.min.js以及angular-route.min.js复制到当前文件夹并将其包含为

<script src="angular.min.js"></script>
链接地址: http://www.djcxy.com/p/77979.html

上一篇: Angular error: Error: [$injector:unpr] Unknown provider: $stateProvider

下一篇: AngularJS fade view in/out