当我向api询问以下参数时,我可以访问JSON api,api URL是http://host/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
永远不会被称为
答案 0 :(得分:1)
做你想做的最简单的方法需要分两步。获取数据,显示数据。
http://jsfiddle.net/TheSharpieOne/He9cc/3/ (注意:API端点不会返回任何内容,但您可以看到它被调用。一次。)
var app = angular.module('app', ['ngResource']);
app.factory('API', function ($resource) {
return $resource('/host/api/');
});
app.controller('myController', function ($scope, API) {
$scope.ns = {
count_people: function (id) {
API.get({on:"house",q:"count_people",house_id:id}, function(data){
$scope.ns.people[id] = data.people
});
},
people: []
};
});
HTML有额外的init来从API获取计数
<p ng-init='ns.count_people(212321)'>Total of people in house: {{ns.people[212321]}}</p>