`

深入了解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、高级...

    angular-seed-master-master.zip

    "angular-seed-master-master.zip" 是一个包含Angular和Bootstrap集成项目的压缩包,它是一个基于Angular的种子项目,用于快速启动新的Angular开发。Angular是Google维护的一个强大的前端JavaScript框架,而...

    Angular-angular-skyhook.zip

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

    ng-book2-angular-6-r68

    《ng-book2-angular-6-r68》是深入、全面且与时俱进的Angular 6专著,旨在帮助读者成为Angular 6的专家。这本书涵盖了Angular框架的各个方面,从基础概念到高级特性和最佳实践,旨在让读者对Angular 6有深入的理解。...

    angular的表单设计器 angular-form-builder

    **二、使用Angular-Form-Builder的步骤** 1. **安装**: 首先,你需要在项目中安装Angular-Form-Builder库,通常通过npm进行: ```bash npm install angular-form-builder --save ``` 2. **导入模块**: 在你的...

    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-sortable-view.zip

    首先,让我们深入了解一下angular-sortable-view的安装与集成。这个项目通常以Git仓库的形式提供,你可以通过下载zip文件或使用Git克隆命令获取源代码。在这个案例中,我们已经有了名为"angular-sortable-view-...

    Angular-angular-svg-icon.zip

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

    前端项目-angular-morris.zip

    **前端项目介绍** Angular-Morris 是一个专门为 AngularJS(一种由...通过学习和实践这个项目,不仅可以掌握Angular-Morris的用法,还能深入理解AngularJS和数据可视化的基本原理,对于提升前端开发技能大有裨益。

    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-ui-sortable.zip

    要使用`angular-ui-sortable`,首先需要确保项目中已经引入了jQuery和jQuery UI库,因为该模块依赖于这两个库的Sortable功能。然后,通过npm或bower等包管理工具将`angular-ui-sortable`添加到项目中。安装完成后,...

    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。...

Global site tag (gtag.js) - Google Analytics