未知的提供者
每当我这样做:
app.controller('hangmanController', ['$scope', 'wordnickAPIService', function ($scope, wordnickAPIService) {
我得到这个:
[$injector:unpr] Unknown provider: wordnickAPIServiceProvider <- wordnickAPIService
我阅读了关于该主题的讨论,但没有看到适用的答案。 我相信这是简单或微不足道的,但我错过了,但是,如果Angular没有给我适合尝试将它们拼凑在一起的话。
相关HTML:
<body ng-app="angularHangmanApp" ng-controller="hangmanController">
我的控制器:
'use strict';
var app = angular.module('angularHangmanApp', []);
app.controller('hangmanController', ['$scope', 'wordnickAPIService', function ($scope, wordnickAPIService) {
[...]variable declarations[...]
var wordListURL = 'http://long_url_that_returns_some_json';
$scope.wordList = wordnickAPIService.get(wordListURL);
}]);
我的工厂:
'use strict';
var app = angular.module('angularHangmanApp', []);
app.factory('wordnickAPIService', ['$http', function($http) {
return {
get: function(url) {
return $http.get(url);
},
post: function(url) {
return $http.post(url);
},
};
}]);
问题是您正在创建具有相同名称的多个模块。
要以角度创建模块,请使用:
var app = angular.module('angularHangmanApp', []);
然后在其他地方获取该模块,只需输入:
var app = angular.module('angularHangmanApp');
没有额外的[] ...
还要确保在尝试调用服务之前先声明服务。
在工厂和控制器中,实际上是重新定义了app
模块。
而不是说
var app = angular.module('angularHangmanApp', []);
说
var app = angular.module('angularHangmanApp');
在应用程序中只使用第一种调用方式(可能只是app.js)。 所有其他引用应该使用第二个样式调用,否则,您会不断重新定义角度应用程序并丢失之前声明的所有控制器,工厂和指令。
链接地址: http://www.djcxy.com/p/77643.html上一篇: Uknown Provider