深入了解angular-resouce 的使用

define(['angular', 'FrameModule']
, function(angular, module){
module.factory('LoginService', ['$resource', '$api', function($resource, $api){
var loginCmpApi = $api.loginCmp;

/**
* 定义service,参数说明
* $resource(arg0:, arg1, arg2, arg3)
* arg0: 定义默认url template
* 1) 无参数url模板:
* /ws/user/login
* 2) 有参ur模板(详见angular-resource.js源码 100~115行)
* /ws/user/:uid
* /ws/user/:param0.:param1
* /ws/user/:param0\.:param1
*
* arg1: 给resource对象指定一个默认的url参数,记住是“url参数”,resurce中所涉及的 param 与 data
* 是两个不同的概念,param参数的作用是替换url模板宏变量以及当做queryString使用, 而data只
* 能用于http request body, ok! 那么data中的参数能不能用于url template呢,是可以的,例如:
* arg1 = {uid: '@id'}, '@'参数的含义就是 将data.id当中uid的参数值
*
* arg2: 该参数是配置actions的,他是一个对象,key是方法名称, value就是 http config 例如:
* {
* 这里的url template 模板参数优先于 定义$resource(url,...) 中的url template参数
* findUsersByRole: {url: ?, headers: {?}, method:?, ..... }
* }
* 之后我们就可以在controller中 这么调用:
*
* module.controller('DemoControoler', ['DemoService', function(demoService) {
*
* 调用时,该方法有4个参数,详见angualr-resource.js源码598行
* var futureObj = demoService.findUsersByRole(?, ?, ?, ?);
*
* 或者写成:
* 方面前面加入了$前缀, 详见angualr-resource.js源码747行
* var futureObj = demoService.$findUsersByRole(?, ?, ?, ?);
*
* //理解futureObj,首先理解 Deffer与Promise是什么?,他是目前许多框架的核心,自己百度去
* }])
*
* arg3: 配置参数:
* {
* stripTrailingSlashes: boolean 是否忽略后缀反斜线
* cancellable: boolean 当前request not already completed,是否支持通过$cancelRequest方法取消当前request
* }
* @type {Object}
*/
return $resource(loginCmpApi.login, {}, {
login: {method: 'POST', url: loginCmpApi, headers: {'Content-Type': 'application/json'}}
})
}])
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值