Angular组件库
文档说明
技术中心前端组-组件系统是采用 AngularJS+Gulp 搭建的项目,该文档主要针对AngularJS如何实现我们的业务代码进行讲解,加深对项目构建的认识,当项目出错时也方便快速定位错误的地方。
Git仓库
目录树
|
|
静态页面index.html
|
|
入口文件 app.js
实现与
ng-app
关联起来的模块BlurAdmin
,BlurAdmin
是一个模块,当启动AngularJS时,就会去匹配这种对应关系,发现一致时则开始执行里面的内容。一个模块可以将其他模块引进来,就如以下[]
中包含好几个字符串,这些字符串就是一个个module 。
src / app / app.js :
|
|
子模块
我们以其中一个例子为例,比如
daterangepicker
模块,路径为‘src / app / pages /data’
下,这个例子实现日期组件,即系统左侧菜单的“日期组件”。
步骤
- 新建module
BlurAdmin.pages.date
(ps:这个module需要注入到BlurAdmin,后面我们将会提到)。 - 我们会有一级菜单和二级菜单,以下
BlurAdmin.pages.date
为一级菜单,[]
中引进来的module为二级菜单。
src / app / pages / data / date.js :
|
|
- 这时我们已经实现了一级菜单,template中显示的内容为我们引进来的
'BlurAdmin.pages.date.daterangepicker'
即为二级菜单,接下来我们开始实现这个二级菜单。 - 二级菜单路径为 路径为
‘src / app / pages / data / daterangepicker’
- 以下就是我们刚在
date.js
中引入的module,以下几点解释均以daterangepicker.module.js
为例$stateProvider.state('date.daterangepicker', {})
这种写法是因为我们在项目中引入了Angular-ui-router
当我们在<a>
中加入ui-sref
属性,如<a ui-sref='date.daterangepicker'></a>
就会引入{}
中的的属性。- 属性
url
: 当执行<a ui-sref='date.daterangepicker'></a>
时,对应页面的URL为/daterangepicker
,这就是单页面应用的精髓,它并不会刷新整个页面,只会更新这个module里的内容,其他外层的module不会更新。 - 属性
templateUrl
: 当进入该URL也会有页面上的变化,而这变化的页面路径就指向templateUrl
里的页面。 - 属性
controller
: 该控制器是实现以上templateUrl
页面的数据绑定。
src / app / pages / data / daterangepicker / daterangepicker.module.js :
|
|
子模板引入
我上一标题中我们讲解了module
BlurAdmin.pages.date
的实现,这时候我们需要将它引入到我们的入口文件里面。
src / app / pages / pages.module.js :
|
|
- 我们再看看一开始我们讲解的
app.js
src / app / app.js :
|
|
结束 ^_^