繁体   English   中英

装饰Angular中的服务提供商

[英]Decorating a service provider in Angular

我正在开发一个库,该库扩展了ui.router某些功能,用于构建应用程序状态集。 目前,我在我的库中定义一个新的提供者来管理这个(我们称之为enhancedState )形式:

myApp.provider('enhancedState', EnhancedState);

EnhancedState.$inject = ['$stateProvider'];
function EnhancedState ($stateProvider) {
  this.$stateProvider = $stateProvider;
}
EnhancedState.prototype = {
  /* fun new methods that wrap $stateProvider */
  $get: ['$state', function ($state) {
    /* maybe wrap some $state functionality too */
    return $state;
  }
};

然后,我可以在我的应用程序配置中使用我的enhancedStateProvider来遵循库的扩展功能进行有趣的新状态定义。

但是,我希望直接装饰$stateProvider类。 我知道Angular的$provider.decorate()实用程序,但据我所知,它只能用于装饰生成的服务实例,而不能用于装饰提供程序。

有没有人成功地使用它来装饰提供程序,或者知道在Angular 1.x中有类似的机制?

谢谢!

您需要AngularJS装饰器 (查找decorator方法)。 检查这个例子。 基于发布。

例:

app.config(function($provide) {
  $provide.decorator('$state', function($delegate) {
    $delegate.customMethod = function(a) {
      console.log(a);
    };
    return $delegate;
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM