我在另一个文件中从控制器内的一个文件注册服务时遇到问题。
我有一个名为"script.js"
的主文件,它看起来像这样:
(function() {
var app = angular.module("myApp", []);
var MainController = function(scope, github, interval, log, anchorScroll, location) {
//some code which is not important here
};
app.controller("MainController", ["$scope", github, "$interval", "$log", "$anchorScroll", "$location", MainController]);
}());
还有一个名为"github.js"
的第二个文件:
(function() {
var github = function($htpp) {
var getUser = function(username) {
//return user data
};
var getRepos = function(user) {
//return repo data
}
return {
getUser: getUser,
getRepos: getRepos
};
};
var module = angular.module("myApp");
module.factory("github", github);
}());
它不起作用......我不知道我错过了什么......我正在看教程,但它是在较早版本的Angular上准备的......
当然,在.html
文件中,"script.js"
的引用位于"github.js"
之前。
编辑: 我错过了github依赖中的双引号,并且在“github.js”中拼写错误 - $ htpp而不是$ http ......
答案 0 :(得分:1)
您的代码中存在少量拼写错误:
1. github
依赖必须是双引号,"github"
依赖,如:
app.controller("MainController", ["$scope", "github", "$interval", "$log", "$anchorScroll", "$location", MainController]);
2.作为建议:在控制器中,依赖性应该相同(缺少$
),如下所示:
var MainController = function($scope, github, $interval, $log, $anchorScroll, $location) {
3.在您的工厂依赖项中,它应该是$http
(不是htpp)