2013-09-05 2 views
0

У меня есть доступ к JSON API, API-интерфейс URL является http://host/api, когда я спрашиваю АНИ со следующими параметрами

http://host/api&q=count_people&on=house&house_id=123433 

ответ АФИ:

{ 
    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

так в чем ваш вопрос? – winkerVSbecks

+0

Я не вижу обратного вызова. – TheSharpieOne

+0

@TheSharpieOne вы можете объяснить – rkmax

ответ

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> 
+0

спасибо за ваш ответ 'ng-init' не работает для меня, но я заменяю для других вещей – rkmax

Смежные вопросы