javascript - Ionic1 Factory $http 请求返回 promise

标签 javascript angularjs ionic-framework

我有一个 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 ”中,我不确定如何输出该集合。

Screenshot of Console Log

我已经尝试过

<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/

相关文章:

javascript - 如何从java获取javascript(jquery)数组?

cordova - 如何在Windows平台上更改ion-spinner

javascript - 解析 json 对象时 eval() 不是必需的吗?

html - 如何找到控制台错误的位置

javascript - 与自定义指令范围的 2 种方式数据绑定(bind)

javascript - 检查 undefined variable 与错误变量

css - 如何使用货币格式 html 的奈拉货币符号

angular - 更改手机的日期时间后按钮无响应

javascript - React 可拖动列表组件(带有 Hooks)不断重新渲染,导致其损坏。为什么?

javascript - 如何根据属性(而不是索引)合并2个数组