首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加工厂获取错误:[$injector:unpr]

添加工厂获取错误:[$injector:unpr]
EN

Stack Overflow用户
提问于 2017-10-05 18:42:26
回答 2查看 192关注 0票数 0

尝试添加一个简单的工厂,但得到错误:

代码语言:javascript
复制
Error: [$injector:unpr] http://errors.angularjs.org/1.4.6/$injector/unpr?p0=subfactoryProvider%20%3C-%20subfactory%20%3C-%20authService%20%3C-%20AuthorizationInterceptor%20%3C-%20%24http%20%3C-%20%24templateRequest%20%3C-%20%24compile

我已经添加了一个脚本标记:

代码语言:javascript
复制
<script src="app/subfactory.js"></script>

该子工厂的定义如下:

代码语言:javascript
复制
(function () {
    //'use strict';

    angular
        .module('app')
        .factory('subfactory', subfactory);

    function subfactory() {

        var subValue = {};
        return {
            set: set,
            get: get
        };

        function get() {
            return subValue;
        }

        function set(value) {
            subValue = value;
        }
    }

});

在authService中使用:

代码语言:javascript
复制
(function () {
    //'use strict';

    angular
        .module('app')
        .factory('authService', authService);

    authService.$inject = ['subfactory'];

    function authService(subfactory) {

       // removed code for brevity

        mgr.getUser().then(function (user) {
            if (user) {
                var idToken = user.id_token;
                var dataIdToken = getDataFromToken(idToken);
                subfactory.set(dataIdToken.sub);
            } else {
                //console.log("User not logged in");
            }
        });

我还有调用authService的AuthorizationInterceptor:

代码语言:javascript
复制
app.factory("AuthorizationInterceptor", ['$q', '$injector', '$rootScope', '$window', 'authService', function ($q, $injector, $rootScope, $window, authService) {

请告诉我,我如何解决这个错误?

编辑:

代码语言:javascript
复制
<script src="app/app.js"></script>
<script src="app/authService.js"></script>
<script src="app/subfactory.js"></script>

app.js中定义了app.factory("AuthorizationInterceptor"...

该错误消息是F12控制台中的唯一消息。

EN

回答 2

Stack Overflow用户

发布于 2017-10-05 19:02:00

尝试颠倒声明文件的顺序,如下所示:

代码语言:javascript
复制
// only define your module here
<script src="app/app.js"></script>

// define your factories
<script src="app/subfactory.js"></script>
<script src="app/authService.js"></script>

// define your authorization factory here just like the previous two
<script src="app/Authorization.js"></script>
票数 2
EN

Stack Overflow用户

发布于 2017-10-05 19:01:13

无法将其添加为注释。所以在这里添加一个答案。您需要更改文件声明的顺序。在您的例子中,错误是因为您在subfactory.js之前使用了authService.jsauthService.js搜索它的依赖项,但没有找到它,因为它是尚未添加的subfactory.js

代码语言:javascript
复制
 <script src="app/app.js"></script>// If it main file whre angular module is created
<script src="app/subfactory.js"></script>
<script src="app/authService.js"></script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46583700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档