Angular基础培训--2019/2/22

本框架是基于目前流行的三大框架之一的Angular ,通过Angular CLI命令构建的,UI组件是基于阿里的NG-ZORRO的组件库,基于此搭建的企业级后台管理平台。

1、环境搭建:

安装Nodejs,angular需要Node.js的8.x或 10.x版本;

安装Angular CLI  ,  npm install -g @angular/cli

当前框架版本要求angular6.2.0+ , NG_ZORRO1.6.0

2、开发工具:

推荐 Visual Studio Code

备注: 需要掌握的技术栈:  Html5、 CSS、 JS、 ES6 、SCSS、TypeScript、           Angular6、Rxjs, Lodash等

3、功能集合:

A、登录认证,第三方登录认证跳转

B、菜单配置、动态灵活的控制菜单的上下级关系、菜单显示/隐藏、排序、图标等

C、系统角色管理,配置系统的角色列表,以及角色之间的等级关系

D、系统角色授权,控制系统菜单接口和角色之间的关系,控制接口的权限

E、机构管理,公司上下级机构树

F、岗位管理,配置机构岗位,控制岗位的数据权限

H、数据字典,配置开发中用到的字典项以及系统参数的配置

I、系统登录日志,记录系统登录的日志记录

J、后端服务配置入口

4、项目部署:

使用docker发布前端代码-->部署

或者手动部署:生成dist文件进行部署

5、代码框架结构说明:

目录说明:

序号目录名称说明
1docker构建发布环境
2node_modules第三方依赖包存放目录
3e2e端到端的测试目录,用来做自动测试的
4src应用源代码目录
5assets资源目录,存储静态资源的图片等
6app包含应用的组件和模块,我们要写的代码都在这
7envirments环境配置
8index.html整个应用的入口html,程序启动的页面
9main.ts整个项目的入口点,Angular通过这个文件夹来启动项
10polyfills.ts主要用来导入一些必要库
11styles.scss全局的样式
12tsconfig.app.jsonts编译器的配置,添加第三方依赖的时候会修改这个文件
13package.json标准的npm工具的配置文件,该文件里列出了该应用程序所使用的第三方依赖包。执行npm install 安装,安装完后会放在node_modules这个目录上
14.gitignore配置不需要上传到git服务器上的文件
15proxy.conf.json配置服务代理的文件,解决跨域问题
16tslint.json代码规范配置文档,保证ts文件的质量
17service.module.ts框架核心服务的模块
18base-provider.ts 基类服务:封装了正常的增删改查的服务-->基类服务不满足需求的情况下,应将对应的方法重写在自己的服务中
19storage.ts存储临时变量
20xcmg-tabs.service.ts一个页面有多个子table时用到的服务

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6、如何运行项目:

首先按照package.json文件来安装,执行npm install ,等待一会(根据网络不定),安装完依赖包之后,运行npm start,默认启动的端口号是4200,浏览器打开http://localhost:4200/   ,端口号可以改,修改package.json文件中这一行上的端口号即可。

ng serve --proxy-config proxy.conf.json --port 4300

7、如何开发一个模块:

(1)命令方式生成页面组件和模块:ng g c 组件名称   

例如模块名称为crm则生成如下模块:

ng g m 组件名称 --routing      需要配置其module和路由配置   -->生成模块,下面还没有管理的组件

(2)路由配置:

  1. 修改crm-routing.module.ts文件(红色标记部分)
  2. 修改crm.module.ts文件(红色标记部分)    
  3. 编写业务代码:(1)crm-component.html页面                                                                                             (2)crm-component.ts 业务代码
  4. 配置上级路由:crm模块已经配置好,现在需要在上级配置crm路由,loadChildren属性是懒加载模块(模块路径相对于app)                                                                 
  5. 测试路由:登录之后,在浏览器中输入: http://localhost:4200/#/xcmg/crm/list

注意:加载某个模块时默认记载其path:'**'

注意:路由配置要放在**之前,否则会加载不到!

根据routing寻找module-->查看module中展示了哪些页面(组件)

8、编写服务类:

每个模块都又相应的服务类,创建服务命令如下:

  1. 在app/config/模块配置文件.ts中配置:              
  2. 修改服务:                                                            
  3. 在页面中调用服务接口:                                       

9、核心服务类说明:

1、Directives 指令服务 :

   1.1 iconselect.directive.ts: 是一个图标选择指令服务,用于获取图标的名称(在菜单管理模块中使用)

   1.2 numberinput.directive.ts : 是控制<nz-input-number>控件的小数位的指令

 

   1.3 xcp-button.directive.ts:  是按钮权限指令,控制按钮的显示和隐藏

2、Providers 服务:

   1.1 services.module.ts : 应用程序的核心服务

   1.2 module-import-guard.ts: module导入的守卫,控制某些模块只能在根模块中导入

   1.3 common文件夹

        1.3.1 @helpers文件夹:提供一些工具方法,比如类型判断typeCheck(),isTypeCheck()等,isNull(),isUndefined(),isOBject()等,这些函数可以用lodash里面的方法替代,这个文件准备废弃,慎用。

        1.3.2 auth文件夹: 提供框架的认证服务和token服务

        1.3.3 http文件夹:提供http-provider.ts服务和拦截器服务

比较重要的是http服务的请求方法:

  • postRequest( url:string , paramsData?:any, myHeaders?:any)
  • 描述: 封装一个post请求方法
  • 参数:       url:config 文件中配置的接口标识
  • paramsData:请求的参数
  • myHeaders: header信息
  •  
  • getRequest( url:string , paramsData?:any, myHeaders?:any)
  • 描述: 封装一个get请求方法
  • 参数:      url:config 文件中配置的接口标识
  • paramsData:请求的参数
  • myHeaders: header信息
  •  
  • getFileFromApi( url:string , paramsData?:any, myHeaders?:any)
  • 描述: 读取文件流
  • 参数:      url:config 文件中配置的接口标识
  • paramsData:请求的参数
  • myHeaders: header信息
  •  
  • deleteRequest( url:string , paramsData?:any, myHeaders?:any)
  • 描述: 封装一个delete请求的方法
  • 参数:      url:config 文件中配置的接口标识
  • paramsData:请求的参数
  • myHeaders: header信息

PS:  Interceptor-provider.ts文件是http拦截器,做了异常错误的处理,包括错误码处理,token失效,重新刷新token。

       1.3.4  upload文件夹:文件上传和下载服务

file-upload-provider.ts 提供根据id查看文件,删除文件等。

file.service.ts 下载文件,保存本地

       1.3.5 utils文件夹:工具类

date-util.ts: 日期服务类,获取当前时间,格式化日期,日期比较等

notice.ts: 消息通知类工具,info,loading,success,warning,error等类型的消息提示

notification.ts:系统通知类服务

pouchdb.service.ts: 数据存储服务,用于缓存基础数据

xcValidators.service.ts:表单校验服务,包括数字、数字或字母,密码校验,二次密码校验等

        1.3.6 base-provider.ts :基础服务类,提供增删改查功能。

        1.3.7 broadcast.provider.ts :广播类服务,提供组件间消息的发送和接受

        1.3.8 common.modules.ts : 公共服务类

        1.3.9 global-provider.ts : 全局服务,在应用程序中可以通过该类获取登录信息、token信息、验证码信息、系统名称、分页控件配置、文件上传格式。

        1.3.10 storage.ts : 本地数据存储服务,

                   setLocalData : 存储数据,key:value   返回Promise

                   getlocalData : 根据键值获取          返回Promise,数据类型Json

                   getGenericityData : 根据键值获取     返回Promise, 数据类型T

                   removeData : 根据键值删除数据

                   clear : 清除session

3、widget  窗体组件:

Icon-select: 图标选择modal

menu-tree: 菜单树modal

tree-lookup: 菜单、区域、机构等树窗体modal

user-modal: 用户modal

10、常用Angular CLI命令:

你可以使用 ng generate 命令,为已有的 Angular 应用程序添加新的功能。


ng generate class my-new-class: 新建 class

ng generate component my-new-component: 新建组件

ng generate directive my-new-directive: 新建指令

ng generate enum my-new-enum: 新建枚举

ng generate module my-new-module: 新建模块

ng generate pipe my-new-pipe: 新建管道

ng generate service my-new-service: 新建服务

ng generate 命令与其它的子命令一样,也有快捷键,具体如下:

ng g cl my-new-class: 新建 class

ng g c my-new-component: 新建组件

ng g d my-new-directive: 新建指令

ng g e my-new-enum: 新建枚举

ng g m my-new-module: 新建模块

ng g p my-new-pipe: 新建管道

ng g s my-new-service: 新建服务


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<最新AngularJS开发宝典视频教程> ├最新AngularJS开发宝典—第001讲 什么是Angular及与Jquery实例对比分析.mp4 ├最新AngularJS开发宝典—第002讲 模块、控制器、视图模型、双向数据绑定模型、双向数据绑定.mp4 ├最新AngularJS开发宝典—第003讲 MVVM双向数据绑定图例分析(1).mp4 ├最新AngularJS开发宝典—第004讲 声明模块与控制器规范与依赖注入分析.mp4 ├最新AngularJS开发宝典—第005讲 $scope的基本使用方法.mp4 ├最新AngularJS开发宝典—第006讲 表达式与ng-bind及ng-cloak解决闪屏问题.mp4 ├最新AngularJS开发宝典—第007讲 ng-model在表单中双向绑定实例分析讲解.mp4 ├最新AngularJS开发宝典—第008讲 ng-value的使用实例讲解.mp4 ├最新AngularJS开发宝典—第009讲 实例讲解angular控制单选框.mp4 ├最新AngularJS开发宝典—第010讲 实例讲解angular操作checkbox复选框.mp4 ├最新AngularJS开发宝典—第011讲 实例讲解angular操作select列表框.mp4 ├最新AngularJS开发宝典—第012讲 函数使用方法大小写转换与对象深拷贝.mp4 ├最新AngularJS开发宝典—第013讲 函数使用对象扩充与数据遍历.mp4 ├最新AngularJS开发宝典—第014讲 json数据转换与本地存储及$scope数据序列化提交到后台.mp4 ├最新AngularJS开发宝典—第015讲 数据类型判断函数与数据比较方法的使用.mp4 ├最新AngularJS开发宝典—第016讲 ng-init与ng-trim及表单中表单value与$scope数据提交差异分析.mp4 ├最新AngularJS开发宝典—第017讲 使用ng-if、ng-show、ng-disabled、ng-init超简单实现网站注册协议设置.mp4 ├最新AngularJS开发宝典—第018讲 ng-repeat实例详细讲解与后盾人网站进行分析.mp4 ├最新AngularJS开发宝典—第019讲 g-selected、ng-disabled、ng-readonly实例讲解.mp4 ├最新AngularJS开发宝典—第020讲 超简单实现表单的全选与反选.mp4 ├最新AngularJS开发宝典—第021讲 ng-model-options设置数据同步时机提交网站性能.mp4 ├最新AngularJS开发宝典—第022讲 通过ng-class动态改变样式类实例操作.mp4 ├最新AngularJS开发宝典—第023讲 使用ng-style动态改变样式.mp4 ├最新AngularJS开发宝典—第024讲 事件处理指令讲解.mp4 ├最新AngularJS开发宝典—第025讲 AngularJS+flex弹性盒模型+bootStrap 开发微信菜单前端之手机界面预览.mp4 ├最新AngularJS开发宝典—第026讲 AngularJS+flex弹性盒模型+bootStrap 开发微信菜单前端之右侧编辑区域.mp4 ├最新AngularJS开发宝典—第027讲 AngularJS 弹性盒模型+bootStrap 开发微信菜单前端之根据微信SDK文档部署数据.mp4 ├最新AngularJS开发宝典—第028讲 弹性盒模型+bootStrap 开发微信菜单前端之根据菜单类型控制表单显示.mp4 ├最新AngularJS开发宝典—第029讲 弹性盒模型+bootStrap 开发微信菜单前端之添加菜单处理.mp4 ├最新AngularJS开发宝典—第030讲 弹性盒模型+bootStrap 开发微信菜单前端之使用fontawesome设置ui界面.mp4 ├最新AngularJS开发宝典—第031讲 弹性盒模型+bootStrap 开发微信菜单前端之underscore与lodash前端库介绍.mp4 ├最新AngularJS开发宝典—第032讲 弹性盒模型+bootStrap 开发微信菜单前端之使用underscore完成微信菜单删除操作.mp4 ├最新AngularJS开发宝典—第033讲 修复删除菜单时一级菜单选项不显示的问题.mp4 ├最新AngularJS开发宝典—第034讲 filter变量调节器分析与货币变量调节器处理.mp4 ├最新AngularJS开发宝典—第035讲 lowercase与uppercase过滤器使用.mp4 ├最新AngularJS开发宝典—第036讲 使用limitTo过滤器截取字符.mp4 ├最新AngularJS开发宝典—第037讲 使用date过滤器处理时间.mp4 ├最新AngularJS开发宝典—第038讲 orderBy数据排序与filter筛选过滤器.mp4 ├最新AngularJS开发宝典—第039讲 控制器中如何使用顾虑器服务.mp4 ├最新AngularJS开发宝典—第040讲 callee与过滤器结合制作表格升降排序实例.mp4 ├最新AngularJS开发宝典—第041讲 使用$scope处理升降序.mp4 ├最新AngularJS开发宝典—第042讲 $scope.$watch监听数据变化.mp4 ├最新AngularJS开发宝典—第043讲 使用$watch与$filter过滤器制作数据筛选实例.mp4 ├最新AngularJS开发宝典—第044讲 自定义过滤器之手机加星过滤器实例.mp4 ├最新AngularJS开发宝典—第045讲 SPA应用与自定义指令使用场景应用场景分析.mp4 ├最新AngularJS开发宝典—第046讲 自定义指令directive的restrict属性说明.mp4 ├最新AngularJS开发宝典—第047讲 自定义指令名称的标准规范.mp4 ├最新AngularJS开发宝典—第048讲 自定义指令template函数式操作实例讲解.mp4 ├最新AngularJS开发宝典—第049讲 自定义指令replace属性详解.mp4 ├最新AngularJS开发宝典—第050讲 自定义指令transclude与templateUrl属性详解.mp4 ├最新AngularJS开发宝典—第051讲 controller控制器scope父子集作用域实例讲解一 .mp4 ├最新AngularJS开发宝典—第052讲 controller控制器scope父子集作用域实例讲解二.mp4 ├最新AngularJS开发宝典—第053讲 指令scope作用域分析一.mp4 ├最新AngularJS开发宝典—第054讲 scope隔离作用域之@单向文本绑定.mp4 ├最新AngularJS开发宝典—第055讲 scope隔离作用域之=双向文本绑定.mp4 ├最新AngularJS开发宝典—第056讲 scope隔离作用域之=&调用父作用域中函数.mp4 ├最新AngularJS开发宝典—第057讲 指令directive的controller属性.mp4 ├最新AngularJS开发宝典—第058讲 指令directive的link属性详解.mp4 ├最新AngularJS开发宝典—第059讲 tab面板组件的指令实现.mp4 ├最新AngularJS开发宝典—第060讲 服务server应用分析与使用场景.mp4 ├最新AngularJS开发宝典—第061讲 使用$scope.$apply进行数据脏检查.mp4 ├最新AngularJS开发宝典—第062讲 $timeout与$interval实际使用场景分析与实例讲解.mp4 ├最新AngularJS开发宝典—第063讲 $window服务的实例讲解.mp4 ├最新AngularJS开发宝典—第064讲 $sce服务安全的处理html数据.mp4 ├最新AngularJS开发宝典—第065讲 $cacheFactory的缓存实例讲解.mp4 ├最新AngularJS开发宝典—第066讲 $http服务获取后台数据.mp4 ├最新AngularJS开发宝典—第067讲 $http服务请求缓存操作减少服务器压力加快页面展示.mp4 ├最新AngularJS开发宝典—第068讲 $http服务简写操作.mp4 ├最新AngularJS开发宝典—第069讲 $http服务之后台接收POST数据的几种方式.mp4 ├最新AngularJS开发宝典—第070讲 spa项目的server层分析与使用factory创建服务.mp4 ├最新AngularJS开发宝典—第071讲 多个控制器共享服务server数据的处理实例.mp4 ├最新AngularJS开发宝典—第072讲 使用service创建自定义服务.mp4 ├最新AngularJS开发宝典—第073讲 SPA应用的路由使用分析.mp4 ├最新AngularJS开发宝典—第074讲 uiRouter默认路由规则操作.mp4 ├最新AngularJS开发宝典—第075讲 uiRouter链接上实例路由跳转方式.mp4 ├最新AngularJS开发宝典—第076讲 uiRouter路由模板设置方式实例.mp4 ├最新AngularJS开发宝典—第077讲 uiRouter路由控制器使用方式详解.mp4 ├最新AngularJS开发宝典—第078讲 uiRouter路由控制器或指令中执行路由跳转.mp4 ├最新AngularJS开发宝典—第079讲 uiRouter路由参数设置与$stateParams服务的使用.mp4 ├最新AngularJS开发宝典—第080讲 uiRouter路由定义高效的父子级嵌套路由.mp4 ├最新AngularJS开发宝典—第081讲 uiRouter路由定义超灵活的嵌套路由视频.mp4 └最新AngularJS开发宝典—第082讲 uiRouter路由多个view下的父子级视频图嵌套使用.mp4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值