javascript - 在 AngularJS 服务中加载模块

标签 javascript angularjs

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

myApp.factory('myService', ['angularMoment', function(angularMoment) {
  return {
    getLocale: function() {
      return angularMoment.locale();
    }
  }
}]);

如果我将 return angularMoment.locale() 替换为 return 'someLocale';,我的代码就会运行。但是,只要我引用 angularMoment,就会出现错误。我知道这与我没有正确加载模块这一事实有关。但是,我不知道我做错了什么。我在运行单元测试时看到这个错误:

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

我做错了什么?

最佳答案

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

myApp.factory('myService', ['moment', function(moment) {
  return {
    getLocale: function() {
      return moment.locale();
    }
  }
}]);

关于javascript - 在 AngularJS 服务中加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25369848/

相关文章:

javascript - Sproutcore:LabelView 中未显示文本

javascript - 通过 Angular js传递json中的id

javascript - 如何将 URL 调用的 HTML 结果附加到 DOM?

javascript - Angular 路线在单击时不起作用,但再次单击可以工作

javascript - 在 NetBeans/Eclipse 中运行 JavaScript 文件?

javascript - HTML 将文本转换为链接

javascript - 无法显示 Angular 形式的跨度

angularjs - 如何在 Bower 中获取包的版本?

javascript - 当用户更新输入时,如何让 AngularJS 1.6 调用一次函数

angularjs - 确保 DOM 更改在转换之前完成