2015-02-24 113 views
0

我正在尝试将一些服务和控制器加载到AngularJS应用程序中,但我面对的是“未知提供者”消息,我不明白。AngularJS中的“未知提供者”

Unknown provider: $scope, accountManagementServiceProvider <- $scope, 
accountManagementService <- RegistrationSigninControllerS/<@https: 
//ajax.googleapis.com/ajax/libs/angularjs/1.3.13/an… id 

我app.js就是这样

var dataApp = angular.module('niwadataApp', ['ngRoute','niwaDataControllers']); 

与一些配置的东西和路线等等等等一起然后在一个单独的文件中我定义一些设置,并尝试以加载服务/控制器

dataApp.value('isEmbedded', false); //And the other 'auth' settings 

dataApp.service('authenticationService', ['$http', '$q', '$rootScope', '$location', 'authTimeout', 'authTimeoutUrl', 'authUrl',AuthenticationServiceImpl]); 
dataApp.factory('authenticatingProxyService', ['authenticationService', 'isEmbedded', '$http', '$q', '$window', '$rootScope', AuthenticatingProxyServiceImpl]); 
dataApp.service('accountManagementService', ['$q', 'authenticatingProxyService', AccountManagementServiceImpl]); 
dataApp.controller('RegistrationSigninController', ['$scope, accountManagementService', RegistrationControllerImpl]); 

这些类都在它们自己的文件中定义,它们在app.js之前加载,例如

var AccountManagementServiceImpl = function($q, auth) { 

根据错误信息也正在寻找accountManagementServiceProvider,但我有一个叫accountManagementServiceImpl类,这就是我在dataApp.service(调用所指定。我是否在定义类名的文档中遗漏了一些必须以'Provider'结尾的东西?它不知道哪个提供者?就我可以看到每个控制器而言,服务和工厂定义了它的要求,并且应该能够被创建。

+0

没有,角度,当你创建一个工厂或服务将创建你的供应商的作用似乎落后。就提供商而言,这只是一个红鲱鱼,它所说的是它可以找到该服务,所以它尚未加载。如果您可以显示文件,文件名,它正在加载的顺序,请检查chrome/firefox来源以确保您可以看到它 – 2015-02-24 19:22:35

回答

2

您缺少一些报价。

更改此:

dataApp.controller('RegistrationSigninController', ['$scope, accountManagementService', RegistrationControllerImpl]); 

这样:

dataApp.controller('RegistrationSigninController', ['$scope', 'accountManagementService', RegistrationControllerImpl]); 
+0

D'oh!谢谢sooooo,我一直在盯着这一天的大部分时间! – Craig 2015-02-24 19:31:49

相关问题