Angularjs 有这个基于函数参数自动发现提供者的好特性。例如,如果我想在某个函数中使用 $http,我会这样称呼它:
$inject.invoke(function ($http) {
});
Angularjs 将“知道”我的依赖项是什么。它会通过阅读我的函数体并根据它知道的参数名称来解决这个问题。
但是,当您想缩小代码时会出现问题。Minifier 将更改参数名称。这就是为什么我们应该使用这个符号:
$inject.invoke(['$http', function ($http) {}]);
或这个符号:
function Foo ($http) {}
Foo.$inject = ['$http'];
$inject.invoke(Foo);
我们应该始终缩小我们的代码。所以我们应该避免使用这个神奇的(第一个例子)符号。
现在我的问题:
我正在尝试缩小我的 js 代码,而 angularjs 无法解析提供程序名称。我找不到我没有指定的地方.$inject = [...]
。现在它只是说:"Unknown provider a"
我不知道它指的是什么功能。
是否可以关闭提供者的 angularjs 自动发现(自动注入器)?我会在缩小之前测试和修复我的代码。
所以,我想知道如何禁用这个“神奇”的 angularjs 推论。因为我总是缩小我的代码,所以当我不小心使用这个超级英雄的邪恶时,我希望 angularjs 对我大喊大叫。
如何关闭它?