每当我这样做时:
app.controller('hangmanController', ['$scope', 'wordnickAPIService', function ($scope, wordnickAPIService) {
我明白了:
[$injector:unpr] Unknown provider: wordnickAPIServiceProvider <- wordnickAPIService
我通过This discussion阅读了该主题,但没有看到应用的答案。我确信这是一件简单或微不足道的事情,但是,jeez,如果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);
},
};
}]);
答案 0 :(得分:0)
问题在于您正在创建具有相同名称的多个模块。
要使用角度创建模块:
var app = angular.module('angularHangmanApp', []);
然后在其他地方获取该模块,只需输入:
var app = angular.module('angularHangmanApp');
没有额外[] ......
还要确保在尝试调用之前声明服务。
答案 1 :(得分:0)
在您的工厂和控制器中,您实际上正在重新定义app
模块。
而不是说
var app = angular.module('angularHangmanApp', []);
说
var app = angular.module('angularHangmanApp');
在应用程序中只使用第一种调用方式(可能只是app.js)。所有其他引用应该使用第二个样式调用,否则,您将不断重新定义角度应用程序并丢失之前声明的所有控制器,工厂和指令。