gpt4 book ai didi

angularjs - 在运行时获取模块和 Controller |服务|指令名称

转载 作者:行者123 更新时间:2023-12-03 00:25:55 25 4
gpt4 key购买 nike

位于angular-logger ,我们正在尝试增强 $log,但我们希望以 Angular 模块和组件的名称进行工作而不进行更改。为此,我们需要在运行时获取 AngularJS 上下文,即模块名称 Controller 、服务指令 名字。

app.module("SampleModule").
controller("ControllerOne", function ($log) {
$log.debug("I am ready!")
}).
controller("ControllerTwo", function ($log) {
$log.debug("I am ready!")
});

默认$log输出:

> I am ready!
> I am ready!

如果我们能够在运行时获取模块和 Controller 名称,那么使用增强的$log我们可以获得更丰富的输出:

> SampleModule.ControllerOne: I am ready!
> SampleModule.ControllerTwo: I am ready!

最好的选择是在不更改 Controller 代码的情况下获取它。也许有办法获取有关接收 $log 依赖注入(inject)的实体的一些元信息?

有什么建议吗?

最佳答案

有一个similar question that I found在 SO 上,但该解决方案仅在使用 Controller 作为语法时才有效。

// a simple route with controller as syntax
$routeProvider.when(
'/myRoute',
{
templateUrl: '/myRoute',
controller: 'ControllerOne as vm'
}
);

// controller
app.controller("ControllerOne", ['$log', function ControllerOne($log) {
var vm = this;
$log.log(vm.constructor.name);
}]);

关于angularjs - 在运行时获取模块和 Controller |服务|指令名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30556328/

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