Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AngularJS中是否提供自动依赖注入?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想自动依赖注入一个Angular内置服务到Angular模块/ app中的所有服务.

我要注入的服务是… $exceptionHandler

我不希望$exceptionHandler成为全局…例如我不想做 …

window.$exceptionHandler = $exceptionHandler

但我也不希望依赖注入$exceptionHandler手动使用…

angular.module('myApp').factory('myservice',['$exceptionHandler',function ($exceptionHandler) {

是否可以自动将Angular内置服务注入Angular模块/应用程序中的所有服务?

非常感谢

解决方法

通过嵌套模块可以使它更方便.在根(或全局)模块中,注入$exceptionHandler以及您创建或想要使用的所有其他模块.根模块的所有子模块都会有$exceptionHandler注入而不会更加轻松.但是,您仍然必须在控制器和工厂函数定义中命名$exceptionHandler,因此不可能完全摆脱注入伪影.

例:

app.js

angular.module('app',['ionic','$exceptionHandler','ngCordova','app.home','app.impressum'])

.run(function ($ionicPlatform,$statE) {
   ..
})
.config(function ($stateProvider,$urlRouterProvider,$provide,$exceptionHandler,$ionicConfigProvider,$compileProvider) {

    $stateProvider
        .state('app',{
            ...
        })
    }
);

现在app.home-Module:

home.js

angular.module('app.home',['app.home.controller','app.home.factory']);

家用/ controller.js

angular.module('app.home.controller',[])
  .controller('homeController',function ($scope,$exceptionHandler) {
    ...
  });

app.home.factory和app.impressum的三个模块非常相似,所以我把它留给你.

如您所见,您仍然需要将$exceptionHandler放入控制器的函数参数中,但模块本身不需要注入,因为它继承了其父模块app.home和app的所有注入.

通过在AngularJS应用程序中使用模块层次结构,可以在适当的位置进行注入…对于整个应用程序,模块组或仅在单个模块上更全局.此外,我们为App的部分提供了一个非常干净的结构.

大佬总结

以上是大佬教程为你收集整理的AngularJS中是否提供自动依赖注入?全部内容,希望文章能够帮你解决AngularJS中是否提供自动依赖注入?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。