Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将AngularJS工厂注入控制器时出现未知提供程序错误_Angularjs - Fatal编程技术网

将AngularJS工厂注入控制器时出现未知提供程序错误

将AngularJS工厂注入控制器时出现未知提供程序错误,angularjs,Angularjs,我试图将我的工厂注入我的控制器,我从AngularJS得到了这个错误: 错误:$injector:unpr未知提供程序 我已经看了这里几乎所有的问题,仍然找不到解决我问题的办法。我相信我的控制器和工厂声明正确,注射是正确的,但看起来情况并非如此 我的工厂代码如下: var app = angular.module('test', []); app.factory('processingFactory', function () { var factory = {}; factory

我试图将我的工厂注入我的控制器,我从AngularJS得到了这个错误:

错误:$injector:unpr未知提供程序

我已经看了这里几乎所有的问题,仍然找不到解决我问题的办法。我相信我的控制器和工厂声明正确,注射是正确的,但看起来情况并非如此

我的工厂代码如下:

var app = angular.module('test', []);

 app.factory('processingFactory', function () {
  var factory = {};

  factory.newTest = function() {
   console.log("TEST");
  }

 return factory;

});
然后将其注入控制器,如下所示:

angular.module("test", ["angularModalService", "anguFixedHeaderTable", 
'angular-loading-bar', "ngResource", "agGrid", 
'ui.tree']).controller("dashboardController", [
"$scope",
"$timeout",
"$http",
"$window",
"$interval",
"$resource",
"ModalService",
"$filter",
'$q',
'processingFactory',
 function($scope, $timeout, $http, $window, $interval, $resource, 
 ModalService, $filter, $q, processingFactory) {
   //other code removed
   $scope.newWorkorder = processingFactory.newWorkorder;
  }
 ]);

此函数通过单击网页上的按钮来调用。所有需要的文件都在这个html页面的脚本标签中。我对angular比较陌生,所以这可能是一个简单的错误或是我不知道的事情

使用数组作为第二个参数调用
angular.module
,声明一个模块,该模块只能用于任何给定的模块名称。您两次声明模块(一次在控制器代码中,另一次在工厂代码中)

尝试将出厂代码的第一部分更改为:

var app = angular.module('test');

如果你在应用程序的其他地方做同样的事情,你也需要删除第二个参数,这样整个应用程序中只有一个模块声明。

如果你的模块“测试”有任何依赖项,为什么不在第一行声明它们,如:

var app = angular.module("test", ["angularModalService", "anguFixedHeaderTable", 
'angular-loading-bar', "ngResource", "agGrid", 
'ui.tree']);
然后将控制器声明为:

app.controler(...)

一切正常。

角度。模块
注入用于模块(即依赖性)。您不需要注入工厂,因为它已经连接到正确的模块-
“test”
。但是您确实需要将
angular.module('test',[])
更改为
angular.module('test')