Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Angularjs$资源从api获取信息_Javascript_Angularjs_Coffeescript - Fatal编程技术网

Javascript 使用Angularjs$资源从api获取信息

Javascript 使用Angularjs$资源从api获取信息,javascript,angularjs,coffeescript,Javascript,Angularjs,Coffeescript,我可以访问JSON api,api URL是http://host/api,当我用以下参数询问api时 http://host/api&q=count_people&on=house&house_id=123433 api的响应是: { people: "6" } api的工作原理与前面的示例类似,现在当我尝试在控制器中使用时,我有以下代码 //app.js var app = app.module('myapp', ['ngResource']); app

我可以访问JSON api,api URL是
http://host/api
,当我用以下参数询问api时

http://host/api&q=count_people&on=house&house_id=123433
api的响应是:

{
    people: "6"
}
api的工作原理与前面的示例类似,现在当我尝试在控制器中使用时,我有以下代码

//app.js
var app = app.module('myapp', ['ngResource']);

app.factory('API', function($resource) {
    var API = $resource('host/api');

    return {
      get: function(o, q, params) {
        s = API.get({on: o, q: q, house_id: params.id}, function(u) {
          return u;
        })
        return s;
      }
    };
});

app.controller('myController', function($scope, API) {
  $scope.ns = {
    count_people: function() {
      return API.get('house', 'count_people', {id: 123433});
    }
  };
});
在我的模板中,我有

<!-- mytemplate.html -->
<p>Total of people in house: {{ns.count_people().people}}</p>

众议院总人数:{{ns.count_people().people}


但是,
ns.count\u people().people
从来都不被称为

做你想做的事情最简单的方法需要分两步。获取数据,显示数据

(注意:API端点不返回任何内容,但您可以看到它正在被调用。一次。)

HTML有一组额外的init来从API获取计数

<p ng-init='ns.count_people(212321)'>Total of people in house: {{ns.people[212321]}}</p>

内部人员总数:{{ns.people[212321]}


那么你的问题是什么?我没有看到回调。@您可以解释一下
资源。获取([parameters],[success],[error])
其中
[success]
是请求成功时要执行的函数。这就是包含人员的对象所在的位置,从这里开始,您需要将其返回或将范围中的某些内容设置为其值,以便在模板中使用它。我不太懂咖啡,但我看不出来happening@TheSharpieOnecoffeescript是否看到回调的
->
,i0m将解析为Javascript感谢您的回答
ng init
对我不起作用,但我替换了其他内容
<p ng-init='ns.count_people(212321)'>Total of people in house: {{ns.people[212321]}}</p>