Итак, я написал службу для выполнения вызовов $ http.get и возврата необходимых переменных, которые мне нужны для функциональности моего шаблона. Проблема, с которой я сталкиваюсь, даже если я могу видеть и регистрировать данные на стороне сервера, всякий раз, когда я вызываю свою службу и пытаюсь получить доступ к переменным, которые они должны возвращать, я просто получаю «неопределенный».Служба в Угловом не возвращает возвращаемые переменные
Моя служба выглядит следующим образом:
function getResultsPage($http) {
var fetchPage = function(pageNumber, filterType, searchVal) {
var recordCount;
var contactsPage = [];
$http.get(
'/searchTotal?filterType=' + filterType + '&searchVal='
+ searchVal).then(function(response) {
recordCount = response.data;
console.log("recordCount: " + recordCount);
});
$http.get(
'/search?filterType=' + filterType + '&searchVal='
+ searchVal + "&pgNo=" + pageNumber).then(
function(response) {
response.data.forEach(function(contact) {
contactsPage.push(contact); // load search
// results into
// contactsPage
});
});
return {
recordCount : recordCount,
contactsPage : contactsPage
};
}
return {
fetchPage : fetchPage
};
}
и мой контроллер:
function ContactsController($http, $filter, getResultsPage) {
var self = this;
// Begin lazy loading code
self.filterType = 'LastName';
self.contactsPage = [];
self.recordCount = 0;
self.usersPerPage = 15; // this should match however many results your
// API puts on one page
self.pagination = {
current : 1
};
self.pageChanged = function(newPage, filterType, searchVal) {
self.filterType = filterType;
self.recordCount = getResultsPage.fetchPage(newPage, filterType,
searchVal).recordCount;
console.log("record count in js = " + self.recordCount);
self.contactsPage = getResultsPage.fetchPage(newPage, filterType,
searchVal).contactsPage;
console.log("contactsPage in js = " + self.contactsPage);
};
self.pageChanged(1, 'LastName', 'a');
// End lazy loading code
Вот картина выхода из моих бревенчатых заявлений в рамках функции pageChanged:
Чтобы уточнить: я получаю 1822 co ntacts обратно из моего запроса, но из моего контроллера я не могу получить этот номер для привязки к self.recordCount, и я не могу заставить возвращенный массив контактов успешно связываться с self.contactsPage. Спасибо за любую помощь!
Пожалуйста, не перекреститесь (http://meta.stackexchange.com/tags/cross-posting/info): http://programmers.stackexchange.com/q/322332 –