加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS中是否提供自动依赖注入?

发布时间:2020-12-17 17:14:07 所属栏目:安全 来源:网络整理
导读:我想自动依赖注入一个Angular内置服务到Angular模块/ app中的所有服务. 我要注入的服务是… $exceptionHandler 我不希望$exceptionHandler成为全局…例如我不想做 … window.$exceptionHandler = $exceptionHandler 但我也不希望依赖注入$exceptionHandler手
我想自动依赖注入一个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的部分提供了一个非常干净的结构.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读