未知的提供者

每当我这样做:

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

下一篇: how can i achieve to create a checkbox?