在APP中,我们经常需要从服务端拿些数据到前端展示,比如一个person list,而请求的方式一般通过Angular提供的$http对象,或者$resource对象,知道AJAX的同学应该会很熟悉,关于这两个对象的使用方法,在这里不过多赘述,
需要的童鞋请去查Angular Js的官方文档。而对于一个APP而言,请求的同类数据,可能不止在一个页面出现,所以我们将其封装为一个Service,以便在多个页面使用。
关于Service是什么东东,这里只简单提一下,可以将其理解为通过这个Service获得一个对象,这个对象提供了一些内部自定义的方法,或者说函数,想必大家都知道为什么要定义函数?就是不想拷贝自己的代码。。。
这里举一个栗子,说明Service的常写方式
'use strict'; angular.module('MyApp') .factory('PersonService', function ($resource) { return $resource('api/person/:id', {}, { 'query': { method: 'GET', isArray: true}, 'get': { method: 'GET', transformResponse: function (data) { data = angular.fromJson(data); return data; } }, 'update': { method:'PUT' }, 'modify':{ method:'POST'} }); });
这里我们定义了一个Person的Service,当我们需要在一个页面展示Person list的时候,只需要PersonService.query({},successCallBack,failedCallBack),就可以获得Person list了,如果我们想修改一个Person对象
同理只需要PersonService.update({id:1,name:'老王'},successCallBack,failedCallBack),通过第一个参数,我们把需要修改的东东以JSON对象的形式传给后台,然后交由后台处理。后面只要遇到需要操作Person的时候,
只需要注入PersonService,通过PersonService操作就好了。