gpt4 book ai didi

angularjs - 在 Angular 中装饰一个服务提供者

转载 作者:行者123 更新时间:2023-12-04 19:02:41 25 4
gpt4 key购买 nike

我正在开发一个扩展 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类(class)。我知道 Angular 的 $provider.decorate()实用程序,但据我所知,它只能用于装饰生成的服务实例,而不能用于装饰提供者。

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

谢谢!

最佳答案

您需要 AngularJS decorators (找到 decorator 方法)。查询 this plunker 示例。基于 this所以发帖。

例子:

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

关于angularjs - 在 Angular 中装饰一个服务提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33926747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com