ionic中将service中异步返回的数据赋值给controller的$scope

本文详细介绍如何在AngularJS中使用service和controller进行异步数据加载。通过具体代码示例,展示如何在service中利用$http获取数据并使用$q实现Promise处理,以及在controller中调用service方法并处理返回数据。

1、service中异步获取数据实例

angular.module('starter.services', [])
.factory('Chats', function($http,$q) {//定义Chats的service
  return {
    all: function() {//all方法异步获取数据
      var deferred=$q.defer(); //定义deferred
      var promise=deferred.promise;//定义promise
      $http.get('http://localhost:3000/lists').success(function(data,status,headers,config){
        //执行deferred.resolve方法,将返回的data传入作为参数
        deferred.resolve(data);
      })
      //返回promise
      return promise;
    }
  };
});

2、controller中执行Chats的all方法,并将返回的数据赋值给$scope的items,这里的result就是service的all方法中异步返回的数据

angular.module('starter.controllers', [])
.controller('ChatsCtrl', function($scope, Chats) {
    Chats.all().then(function(result){
      $scope.items = result;
    },function(){
      console.log('goodsService get error');
    });
})

 

转载于:https://www.cnblogs.com/niejunchan/p/5738780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值