AngularJS获取当前工厂/服务名称

8

你好!

我正在尝试使用Angular的工厂和服务,发现无法获取当前工厂/服务的名称。至少我没有找到相关资源。
例如,我有一个工厂像这样;

.factory('GuessImAFactory', [function() {

    var factoryName = this.yadayada.name; //<- This actually doesn't work,
                                             //if you haven't guessed

    //<--Some other code goes here-->

    return something;
}])

那么问题来了,有没有人知道如何得到它的名称?


1
有什么使用情况会让你受益于拥有一个名称? - charlietfl
4
真的重要吗? :) 问题是我在一个工厂里重复使用那个字符串大约3次,而我有大约200个工厂,如果不这样做,我需要打很多字,而且重新设计会是一场噩梦... - TheCodeDestroyer
2个回答

2

我认为这是不可能的。在回调函数中,您无法获取实际工厂实例,因为您正在定义它。换句话说,它还没有被创建。

然而,简单的解决方法是硬编码它。由于您可能不会有动态工厂,因此您可以简单地这样说:

var factoryName = 'GuessImAFactory';

并在需要时使用它。

觉得就是这样...有点担心这是唯一的解决方案 :/ - TheCodeDestroyer

-1
试试这个:factoryObject.__proto__.constructor.name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接