我正在尝试将一些服务和控制器加载到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 :(得分:2)
你遗漏了一些引号。
改变这个:
dataApp.controller('RegistrationSigninController', ['$scope, accountManagementService', RegistrationControllerImpl]);
到此:
dataApp.controller('RegistrationSigninController', ['$scope', 'accountManagementService', RegistrationControllerImpl]);