[$injector:unpr] Unknown provider:--angular.module()函数解答

在使用angularjs开发项目过程中,无疑遇到这个问题是最棘手的问题:

ionic.bundle.js:26799 Error: [$injector:unpr] Unknown provider: fifoServiceProvider <- fifoService <- FifoController
http://errors.angularjs.org/1.5.3/$injector/unpr?p0=fifoServiceProvider%20%3C-%20fifoService%20%3C-%20FifoController
    at ionic.bundle.js:13443
    at ionic.bundle.js:17793
    at Object.getService [as get] (ionic.bundle.js:17946)
    at ionic.bundle.js:17798
    at getService (ionic.bundle.js:17946)
    at injectionArgs (ionic.bundle.js:17970)
    at Object.instantiate (ionic.bundle.js:18012)
    at $controller (ionic.bundle.js:23417)
    at Object.self.appendViewElement (ionic.bundle.js:59908)
    at Object.render (ionic.bundle.js:57901)

遇到这个问题,一点提示都没有,找问题都无从下手,头疼不已。
在说解决办法之前,我们来看看angular.module函数:

angular.module('MyApp',[])

在一个SPA项目中,其实我们可以添加多个模块。然后模块的依赖就会写在那个中括号中来进行声明。

这种通过后号声明依赖的函数我们叫做模块声明。

angular.module('MyServices',['OtherService'])

他还有另一种用法,就是不加中括号这个参数:

angular.module('MyServices')

这个不加中括号的方法我们用来引用模块。所以,同一个模块,我们当然只需要声明一次就OK:

angular.module('MyApp',['MyControllers','MyServices','MyDirectives']);

angular.module('MyControllers',[]);
angular.module('MyServices',[]);
angular.momdule('MyDirectives'[]);

所以,angular.module(”,[])用来声明模块,相当于angular模块的setter函数。angular.module(),用来引用模块,我们就可以在模块上添加一些自己定义的东西来使用。

写到这里,我来说说我的问题,我确实遇到了上面的问题,unknown provider,所以检查了一下代码,基本上每个service里面都写成了angular.module(”,[]),而这个是用来声明模块的,所以这种方法特别不可取,等我把中括号去掉之后,代码终于运行正常了。特地在这里写写,记录下来,希望有遇到相同问题的能够采纳,这个坑的确很深。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值