"未知提供商"在AngularJS中

时间:2015-02-24 19:16:15

标签: 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'结尾的文档?它不知道哪个提供商?据我所知,每个控制器,服务和工厂都定义了它的要求,应该能够创建。

1 个答案:

答案 0 :(得分:2)

你遗漏了一些引号。

改变这个:

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

到此:

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