cmw*_*cmw 5 decorator angularjs
我正在开发一个库,它扩展了一些功能,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;
}
};
Run Code Online (Sandbox Code Playgroud)
然后,我可以enhancedStateProvider在我的应用程序配置中使用my 来按照我的库的扩展功能执行有趣的新状态定义.
但是,我更愿意直接装饰这门$stateProvider课程.我知道Angular的$provider.decorate()实用程序,但据我所知,它只能用于装饰生成的服务实例,而不是提供程序.
有没有人成功地使用它来装饰提供者,或者是否知道在Angular 1.x中这样做的机制类似?
谢谢!
你需要AngularJS装饰器(find decorator方法).检查这个 plunker示例.基于此,以便张贴.
例:
app.config(function($provide) {
$provide.decorator('$state', function($delegate) {
$delegate.customMethod = function(a) {
console.log(a);
};
return $delegate;
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2627 次 |
| 最近记录: |