从控制器

时间:2017-06-14 13:54:01

标签: angularjs

我在另一个文件中从控制器内的一个文件注册服务时遇到问题。

我有一个名为"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 ......

1 个答案:

答案 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)