无法从带有角度的API获取json

时间:2015-10-16 17:27:43

标签: javascript json angularjs

尝试使用angular和API提取一些数据。显然我对此很陌生。

我的自定义服务:

readIp.service('ip', ['$resource', function($resource){
    this.getIP = function(ip) {
        var ipData = $resource("http://www.telize.com/jsonip?callback=getip", {
            callback : "JSON_CALLBACK" 
        }, { 
            get : { 
                method: "JSONP" 
            }
        });
        return ipData.get({ getip: ip });
    }
}]);

来自我的控制器:

$scope.getIP = ip.getIP($scope.getip);

HTML:

<strong>Your IP is:</strong>&nbsp;{{ getIP.ip }}

我目前收到错误:

Uncaught ReferenceError: getip is not defined 

因为API显示为:getip({&#34; ip&#34;:&#34; ###。###。##。##&#34;});来自消息来源。

2 个答案:

答案 0 :(得分:0)

您的服务未正确定义。它应该返回一个包含getIp方法的对象。尝试以下方面:

readIp.factory('ip', ['$resource', function($resource){
  return {
    getIP: function(ip) {
      // your code goes here
    }
  }
}]);

答案 1 :(得分:0)

尝试使用此代码代替上述代码。希望你已经添加了ngResource模块。

readIp.factory('ip',['$resource',function($resource){ return $resource('http://www.telize.com/jsonip?callback=getip', {}, { query: {method:'GET', params:{}} }); }])