Я зовем мои данные из моего апи через фабрику, которая выглядит следующим образом:
app.factory('Service', ['$http', function ($http) {
var urlBase = 'http://localhost:50476/api';
var Service = {};
Service.getComp = function() {
return $http.get(urlBase + '/complaints')
};
return Service;
}]);
Затем я использую мой контроллер использовать директиву:
getComp();
$scope.comp = [];
function getComp() {
var deferred = $q.defer();
Service.getComp()
.success(function (comp) {
console.log('comp', comp); //returns array data
$scope.comp = comp.data;
deferred.resolve(comp);
})
.error(function (error) {
$scope.error = 'error' + error.message;
});
return deferred.promise;
}
$scope.index = 0;
$scope.complaints = $scope.comp[0];
console.log($scope.complaints); //undefined
console.log($scope.comp); //array of 0
Когда я пытаюсь получить доступ к элементам вне функции, он не определен. Я пытался искать разрешения, например, используя $ q, но он пока не отображает данные. Когда я добавил отложенную часть, мой ng-repeat перестает работать.
в то время, когда вы регистрируете $ scope.complaints, это не определено, потому что ответ от запроса $ http еще не возвращен, поэтому ваш «успех», метод еще не выполнен. – o4ohel