【发布时间】:2017-08-16 12:11:40
【问题描述】:
升级到 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/$injector/strictdi?p0=function(searchScope)
我从here 了解到,这意味着我
启用严格模式,以检测您忘记使用 $inject 或数组符号的位置,以确保您的代码可以安全 缩小。
这应该如何帮助我找到错误?是在定义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.6.5吗?\
-
你在文件开头加了
'use strict';吗? -
可能您的某个注入服务没有使用 $inject 或数组表示法。
-
UI Router 中没有 searchScope 之类的东西,所以不清楚问题与它有什么关系。问题出在注入 searchScope 的某些函数中。只需在您的代码库中搜索它。你是唯一能做到这一点的人。
-
是的,sry 1.6.5。
标签: angularjs