У меня есть функция, которая вызывается от моего контроллера к моей службе.
GridService.getHeaders($scope.grid);
Сервис находится ниже ...
function getHeaders(grid){
var deferred = $q.defer();
$http.put('v1/headers', grid).success(function (data) {
deferred.resolve(data);
}).error(function (data, status, headers, config) {
deferred.reject(data);
});
return deferred.promise;
}
Мне нужно получить данные, я получаю от этого и установить его в переменной $ области действия в мой контроллер ...
$scope.headers = (Data from getHeader function)
Которая затем будет введена в эту функцию. Извините, если это все кажется запутанным ... Как это у меня было изначально, просто установили
$ scope.headers = GridService.getHeaders ($ scope.grid);
Однако $ scope.headers всегда возвращает пустой.
function getFullHeaders(headers, highlightFilteredHeader){
var returnArray = [];
for(var i = 0; i < headers.length; i++){
returnArray.push({
field: headers[i].key,
displayName: headers[i].name,
enablePaginationControls: true,
headerCellClass: highlightFilteredHeader,
enableFiltering: true,
enableSorting: true,
visible: true,
filter: { term: "", }
});
}
return returnArray;
}
Попробуйте задание в .then() обратного вызова, что-то вроде GridService.getHeaders ($ scope.grid) .then (функция (результат) {$ scope.headers = результат}, функция (ошибка) {// ошибка}); –