You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS github.js服务报错求助:ReferenceError: github未定义

排查AngularJS "ReferenceError: github is not defined" 错误

我帮你梳理下几个关键问题,这应该能解决你的报错:

1. 服务未注册到AngularJS模块

你写的自执行函数里定义了github服务,但没有把它注册到你的应用模块中。AngularJS无法识别未注册的服务,所以会抛出github is not defined。

解决方法:在自执行函数的末尾,把服务注册到你的模块里(替换成你实际的模块名,比如你的项目里的模块名称):

(function() { 
  var github = function($http) { 
    // 你的服务方法逻辑...
  };
  // 关键:将服务注册到AngularJS模块
  angular.module('yourAppModuleName').service('github', github);
})();

2. 服务方法未返回Promise

你的getuser和getRepos方法里,$http.get()的异步结果没有被正确返回。$http调用返回的是Promise对象,你需要把这个Promise返回出去,这样调用服务的地方才能拿到异步数据,同时避免逻辑断层。

修正后的getuser方法:

var getuser = function(userName) {
  // 返回整个$http调用的Promise链
  return $http.get("https://api.github.com/users/" + userName).then(
    function(response) {
      return response.data;
    }
  );
};

同理修正getRepos方法:

var getRepos = function(user1) {
  return $http.get(user1.repos_url).then(
    function(response) {
      return response.data;
    }
  );
};

3. 控制器中正确注入服务

确保在使用github服务的控制器里,通过依赖注入引入这个服务,而不是直接使用。比如:

angular.module('yourAppModuleName').controller('YourController', ['github', function(github) {
  // 在这里调用服务方法
  github.getuser('someUsername').then(function(userData) {
    console.log('用户数据:', userData);
  });
}]);

按这几步修正后,应该就能解决ReferenceError的问题了。

内容的提问来源于stack exchange,提问作者Rahul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:58:41