【问题标题】:Can't seem to inject angular-jwt into factory似乎无法将 angular-jwt 注入工厂
【发布时间】:2015-07-11 19:32:31
【问题描述】:

我正在尝试将 angular-jwt 注入工厂以用于身份验证功能,但我不断收到错误

`错误:[ng:areq] 参数 'fn' 不是函数,得到字符串 http://errors.angularjs.org/1.3.15/ng/areq?p0=fn&p1=not%20a%20function%2C%20got%20string

return new ErrorConstructor(message);`

代码如下: webapp.factory('Auth', ['angular-jwt'], function($http, API_URL, $window, $location, jwtHelper ) {

此外,角度的学习曲线以这种方式似乎很尖锐,我应该如何从错误中理解以找出它失败的原因?谢谢!

【问题讨论】:

    标签: javascript angularjs dependency-injection jwt angularjs-factory


    【解决方案1】:

    在您的应用模块中注入所有必需的依赖项。那就是你在声明工厂时注入的新模块。

    代码

    var webapp = angular.module('myAppName',['angular-jwt']);
    
    webapp.factory('Auth',['$http', 'API_URL', '$window', '$location', 'jwtHelper', 
       function($http, API_URL, $window, $location, jwtHelper ) {
       //your c0de here
    }]);
    

    【讨论】:

    • 一旦stackoverflow让我工作,我会接受这个答案,但你能解释一下发生了什么吗?我也注入了模块。我到处都能看到例子显示在控制器和工厂等(goo.gl/yr5aTg)的括号中声明的依赖项为什么我不必将此依赖项传递给工厂?另外,模块的 angular-jwt 是如何转换为 jwtHelper 的?
    • @PixMach 是各种类型的依赖注入。使用数组注释依赖更可取,其中您首先在数组中注入依赖,然后在控制器函数中使用它们
    • 我想你最后忘记了一个 ]。我有点喜欢你在编辑之前的第一种方式,你能解释一下有什么区别吗?
    • @PixMach 只不过是依赖注入的一种,我们在压缩 js 文件时需要遵循这种模式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多