使用服务的方法
(1)modules\core\client\services
menus.client.service.js 定义了Menus服务,以供之后调用:
angular.module('core').service('Menus', [
socket.io.client.service.js定义了Socket服务,
angular.module('core').service('Socket', ['Authentication', '$state', '$timeout',使用工厂的方法
modules\articles\client\services
articles.client.service.js中定义了Articles服务
angular.module('articles').factory('Articles', ['$resource',
均定义在相应模块客户端代码的service文件夹内,在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用,有两种方法来创建服务:工厂和服务
$resource,使用它可以非常方便的同支持restful的服务单进行数据交互。
function LibrariesService($resource) { return $resource('api/libraries/:libraryId', { libraryId: '@_id' }, { update: { method: 'PUT' } }); }$resource函数需要一个必填参数URL,代表了可以访问的资源,以及两个可选参数:默认参数和额外的你想在资源上配置的操作。
第一个参数:URL是带参数的(注意:参数:libraryId代表了会用libraryId参数来替换),如果没有传递参数,那么它会被空字符串替换。
第二个参数:是传递默认的参数到每个请求中。libraryId参数是”@_id”。这表示,如果我使用了一个来自服务器端的返回值对象,那么在它上面调用任何方法(比如$save),那么libraryId字段会从对象的_id属性中取值。
第三个参数:是其他我们想暴露自定义资源上的方法。
$resource返回的对象包含了同后端服务进行交互的方法,我们可以把这个返回的对象理解成同RESTFul的后端服务进行交互的接口。
该对象包含两个get类型的方法已经三个非get类型的方法。
get({libraryId:'123'}, successFn, errorFn);
该方法向url发送一个get请求,并期望一个json类型的响应。这里会向/api/libraries/123发送一个请求,successFn处理请求成功响应,errorFn处理错误。
query(params, successFn, errorFn)
同get()方法使用类似,一般用来请求多条数据。