我有一个 ionic1 应用程序,可与我的 API 端点配合使用。
我创建了一项可以随时获取类别的服务。
.factory('expenses', function($http) {
var expenseCategories = [];
return {
getCategories: function(){
return $http.get('URL_HERE').then(function(response){
expenseCategories = response.data.data[0];
return expenseCategories.categories;
});
}
}
})
我在 Controller 中调用该服务
.controller('expenseCategoryCtrl', function($scope, $state, expenses) {
$scope.categories = expenses;
$scope.data = $scope.categories.getCategories();
console.log($scope.data);
})
当控制台记录响应时,它返回一个 promise ,而不是我通常从 API 获取的 json。如果我在 Controller 中调用 API,我可以毫无问题地重复该集合,但现在它位于一个服务中,它被包装在这个“ promise ”中,我不确定如何输出该集合。
我已经尝试过
<li class="item item-toggle" ng-repeat="categories as category">
{{ category }}
</li>
但我收到错误
[ngRepeat:iexp] Expected expression in form of 'item in collection[ track by id]' but got 'categories as category'.
我认为这是一个不理解 promise 的情况。
最佳答案
希望这会起作用:
.controller('expenseCategoryCtrl', function($scope, $state, expenses) {
$scope.categories = expenses;
$scope.data = $scope.categories.getCategories().then(function(response){
console.log(response);
},function(error){
console.log(error);
});
console.log($scope.data);
})
关于javascript - Ionic1 Factory $http 请求返回 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45152909/