Angularjs 未知提供程序:Yeoman AngulajrJS生成的应用程序中存在提供程序错误

Angularjs 未知提供程序:Yeoman AngulajrJS生成的应用程序中存在提供程序错误,angularjs,runtime-error,yeoman,Angularjs,Runtime Error,Yeoman,我使用Yeoman AngularJS生成器生成了一个AngularJS应用程序,当使用原始源代码运行时,该应用程序运行良好 但是当我试图从Grunt build生成的dist文件夹运行应用程序时 我得到以下错误: vendor.972e9c35.js:5错误:[$injector:unpr]未知提供程序:aProviderAngular从控制器构造函数的参数名称推断控制器的依赖关系,如果要缩小expensesListCtrl控制器的JavaScript代码,其所有函数参数也将缩小,依赖注入程序

我使用Yeoman AngularJS生成器生成了一个AngularJS应用程序,当使用原始源代码运行时,该应用程序运行良好

但是当我试图从Grunt build生成的dist文件夹运行应用程序时 我得到以下错误:


vendor.972e9c35.js:5错误:[$injector:unpr]未知提供程序:aProviderAngular从控制器构造函数的参数名称推断控制器的依赖关系,如果要缩小expensesListCtrl控制器的JavaScript代码,其所有函数参数也将缩小,依赖注入程序将无法正确识别服务。同样的逻辑适用于定义
服务
工厂

您可以通过使用依赖项的名称(以字符串形式提供)注释函数来克服此问题,而这些名称不会缩小

Angular通过注入器调用某些函数(如服务工厂和控制器)。您需要对这些函数进行注释,以便注入器知道要将哪些服务注入函数中。有三种使用服务名称信息注释代码的方法:

  • 使用内联数组注释(首选)
  • 使用
    $inject
    属性注释
  • 隐式地从函数参数名称(有警告) 因此,您已经使用了第1种方法,您还需要将其用于factory(即使不需要显式依赖项)
因此,以下内容可以解决问题:

routerApp.factory('gridService', [ function () { /*factory code*/ }]);


将工厂代码更新为routerApp.factory('gridService',[function(){//factory code}]);保留其他一切same@Shantanu工作谢谢!!你能给我介绍一下那个地方吗?解释一下为什么会出问题?!!!
routerApp.factory('gridService', [ function () { /*factory code*/ }]);