`

深入了解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'}}
})
}])
})
分享到:
评论

相关推荐

    Angular-angular-electron-dream-starter.zip

    Angular-angular-electron-dream-starter.zip,Angular Electron初学者工具包,包括Webpack、Angular 4(路由器、HTTP、表单、服务、NGRX、测试、E2E、覆盖范围)、Karma、Spectron、Jasmine、伊斯坦布尔,以及带有...

    Angular-angular-ngrx-nx-realworld-example-app.zip

    Angular-angular-ngrx-nx-realworld-example-app.zip,示例性真实世界应用程序,由angular 8、ngrx 8、nrwl/nx 8angular、ngrx/平台、nrwl/nx代码库构建,包含遵循真实世界规范和api的真实世界示例(crud、auth、高级...

    mobile-angular-ui-1.3.3

    mobile-angular-ui-1.3.3,那个 mobile-angular-ui中文版 无法下载

    Angular-angular-skyhook.zip

    Angular-angular-skyhook.zip,角形天钩反作用dnd的实现,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发人员的web应用程序工作流。

    Angular-ej2-angular-ui-components.zip

    Angular-ej2-angular-ui-components.zip,SyncFusion Angular UI组件库为构建现代Web应用程序提供了50多个跨浏览器、响应灵敏且轻量级的Angular UI控件。SyncFusion Angular UI组件库(Essential JS 2),Angularjs于...

    angular-route.min.js

    angular-route.min.js前端MVC框架AngularJS路由视图所需资源Angular-route.js

    Angular-angular-editor-fabric-js.zip

    Angular-angular-editor-fabric-js.zip,基于fabric js for angular.ioangular-editor-fabric-js的拖放编辑器,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。...

    Angular-angular-svg-icon.zip

    Angular-angular-svg-icon.zip,用于内联svg的角度组件,允许使用css轻松设置svg的样式。,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面...

    Angular-angular-async-local-storage.zip

    Angular-angular-async-local-storage.zip,高效的角应用程序和pwa本地存储模块:简单的api 性能 可观察性 验证同步角应用程序的本地存储,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块...

    angular-route.js(AngularJS路由所需资源)

    前端MVC框架AngularJS路由视图所需资源Angular-route.js

    Angular-angular-cli.zip

    Angular-angular-cli.zip,用于angularangular cli的cli工具,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发人员的web应用程序工作...

    Angular-angular-validation-match.zip

    Angular-angular-validation-match.zip,检查一个输入是否与另一个匹配。用于确认密码、电子邮件或任何内容。角度验证:匹配,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的...

    Angular-angular-auth-oidc-client.zip

    Angular-angular-auth-oidc-client.zip,用于openid connect代码流与pkce的npm包,用于openid connect代码流与pkce的隐式flowangular库和隐式流,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发...

    Angular-angular-cropperjs.zip

    Angular-angular-cropperjs.zip,角向 6角向cropperjs的cropperjs积分,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发人员的web...

    Angular-flask-angular-data-science.zip

    Angular-flask-angular-data-science.zip,数据科学入门应用程序的存储库,使用Flask、Angular和Docker。...

    Angular-angular-split.zip

    Angular-angular-split.zip,用于拆分视图并允许使用css flexbox布局拖动以调整区域大小的角度ui库。角度拆分,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。...

    Angular-angular-builders.zip

    Angular-angular-builders.zip,angular cli@angular builders的一组自定义生成器,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发...

    Angular-angular-formio.zip

    Angular-angular-formio.zip,angular form.io AngularJSON窗体呈现程序的JSON格式,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发...

    Angular-angular-starter.zip

    Angular-angular-starter.zip,使用Typescript(更新为4.4.3)的Gulp角起动器,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发人员...

    Angular-angular-playground.zip

    Angular-angular-playground.zip,用于孤立地处理角度组件(角度版本2.x及更高版本)的应用程序插件模块。孤立地构建角度组件、指令和管道。,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、...

Global site tag (gtag.js) - Google Analytics