首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AngularJS服务中加载模块

在AngularJS服务中加载模块
EN

Stack Overflow用户
提问于 2014-08-19 02:33:40
回答 4查看 811关注 0票数 5

我正在学习AngularJS。目前,我正在尝试在我的服务中加载一个第三方模块。具体地说,我正在尝试加载angular-moment。我的服务定义如下:

代码语言:javascript
复制
myApp.factory('myService', ['angularMoment', function(angularMoment) {
  return {
    getLocale: function() {
      return angularMoment.locale();
    }
  }
}]);

如果我用return 'someLocale';替换return angularMoment.locale(),我的代码就会运行。然而,一旦我引用了angularMoment,我就得到了错误。我知道这与我没有正确加载模块有关。然而,我不知道我做错了什么。当我运行我的单元测试时,我看到了这个错误:

代码语言:javascript
复制
Error: [$injector:unpr] http://errors.angularjs.org/1.2.22/$injector/unpr?p0=angularMomentProvider%20%3C-%20angularMoment%20%3C-myService (line 36) (1)

我做错了什么?

EN

回答 4

Stack Overflow用户

发布于 2014-08-19 02:46:11

在服务/因子注入器中尝试'moment‘而不是angularMoment。这将为您提供来自MomentJS的对象

代码语言:javascript
复制
myApp.factory('myService', ['moment', function(moment) {
  return {
    getLocale: function() {
      return moment.locale();
    }
  }
}]);
票数 2
EN

Stack Overflow用户

发布于 2014-08-19 02:41:09

在声明模块时,需要引用angularMoment模块。否则它不会被加载。这就是导致$injector:unpr错误的原因。所以你需要这样的东西:

代码语言:javascript
复制
var myApp = angular.module("myApp", ["angularMoment"]);
票数 0
EN

Stack Overflow用户

发布于 2014-08-19 02:41:28

这听起来很基本,但是您在html代码中引用的是.js文件,对吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25369848

复制
相关文章

相似问题

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