错误:[$ injector:strictdi]未使用显式注释,无法在严格模式下调用

时间:2017-08-16 12:11:40

标签: angularjs

升级到angular-ui-router 1.0.5(从1.0.0开始)后,我得到以下内容:

Error: [$injector:strictdi] function(searchScope) is not using explicit annotation and cannot be invoked in strict mode

http://errors.angularjs.org/1.6.5/ $注射器/ strictdi?P0 =函数(SearchScope的)

我从here了解到这意味着我

  

启用严格模式,以便检测您忘记使用$ inject或数组表示法的位置,以确保您的代码可以安全   缩小的。

这应该如何帮助我找到错误?它是在Defintion searchScope中还是searchScope本身被错误地注入了某个地方?我怎样才能找到哪里?

它的定义是

.factory('searchScope', ['$location', '$rootScope', 'Query', '$http', '$stateParams', 'language', '$state',
function($location, $rootScope, Query, $http, $stateParams, language, $state) {

(角1.6.5)

有什么建议吗?

修改

SearchScope是我在许多服务和指令中使用的服务。我使用它检查了所有组件,它们的所有定义都是

.directive('foodirective', ['searchScope', function (searchScope) {

对我来说似乎很正确......

1 个答案:

答案 0 :(得分:0)

由于原始评论者从未在这里声明过自己的观点,因此@@ Estus Flask的正确答案是:

这可能意味着在某些路由控制器或解析器中调用了注入searchScope的函数,该函数由于某种原因之前没有被调用。

这帮助我很快找到了错误的根源。