我通過一個工廠,看起來像這樣調用從我的API我的數據:
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