簡體   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