javascript - AngularJS - 服务、工厂、过滤器等中的依赖注入(inject)

标签 javascript dependency-injection angularjs

所以我有一些我想在我的 Angular 应用程序中使用的插件和库,并且(目前)我只是引用这些函数/方法,因为它们在 99% 的应用程序中都是以完全忽略依赖注入(inject)的方式引用的。

我有(例如)javascript 库“MomentJS”,它处理格式化和验证日期,我在我的整个应用程序中的 Controller 、服务和过滤器中都使用它。我学到的方法(使用 AngularJS)是创建一个引用该函数(及其方法)的服务,并将该服务注入(inject)我的 Controller ,效果很好。

问题是我真的需要在所有不同类型的组件中引用这个库,从服务到过滤器再到 Controller 和其他所有组件。所以,我想我的问题是你如何在过滤器、服务和其他所有不是 Controller 的东西中进行依赖注入(inject)?

这可能吗?这甚至是有益的吗?

任何帮助将不胜感激:)

最佳答案

是的,你可以对过滤器和指令使用依赖注入(inject)

例如:

过滤器:

app.filter('<filter>', ['$http', function(http){
    return function(data){
    }
}]);

指令:

app.directive('<directive>', ['$http', function(http){
    return {
        ....
    }
}]);

服务:

app.factory('<service>', ['$http', function(http) {
  var shinyNewServiceInstance;
  return shinyNewServiceInstance;
}]);

关于javascript - AngularJS - 服务、工厂、过滤器等中的依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15457720/

相关文章:

javascript - Angular ng-repeat 输入验证

javascript - 寻找一种动态添加包含多个表单项的 div 的方法

c# - asp.net 5 自定义类中的依赖注入(inject),正确的方法是什么?

objective-c - IOS5编程和Objective C中的依赖注入(inject)

dependency-injection - 依赖注入(inject)与工厂模式

javascript - 在 Angular 隔离范围内观察表单验证

javascript - 为什么 AngularJS 在 HTML 中打印双引号

javascript - MS OneDrive JavaScript SDK 处理程序不是全局的?

javascript - 如何使用 Multer 磁盘存储选项(NodeJs)读取存储的文件?

javascript - JS - readAsDataURL 阻止浏览器事件