【发布时间】:2016-02-28 20:20:18
【问题描述】:
我正在开发一个库,该库扩展了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 中有类似的机制来做到这一点?
谢谢!
【问题讨论】: