Angular技术库
  • 简介
  • 研究热点
    • 单页面登录
    • 单页面服务器渲染
  • 项目实战
    • 目录结构
    • 模块开发流程
    • 公共模块编辑
    • UI使用
    • 工具库
      • util模块
      • filter模块
    • 表单验证
  • 整体框架
    • 环境搭建
      • Windows
      • MAC Linux
    • 示例项目
    • 开发调试
      • 编译JS
      • 编译CSS
      • 编译HTML
      • 编译Bower
      • 服务器启动
      • 与后端服务通讯
    • Gulp文档
      • Gulp API
      • 插件列表
      • Gulp构建
    • Gulp文档
    • 示例项目
  • Angular文档
    • 指令
    • 引导
    • 单页面
    • 基于requireJS和angularJS的前端技术架构
    • 数据共享
    • 模块加载
    • 事件循环
  • SASS文档
    • SASS特性
  • ES6文档
    • ECMAScript前导
    • ECMAScript6特性介绍
    • ES6特性筛选
  • JavaScript文档
    • 匿名函数定义
    • Function
      • 原生prototype
      • 自定义prototype
  • RequireJS
  • Node文档
  • 架构师
  • 时间轴
    • 2016-07-13
    • 2016-06-21
    • 2016-06-14
    • 2016-06-07
    • 2016-05-31
Powered by GitBook
On this page
  • 1.新建模块
  • 2.配置模块
  • 2.1路由配置
  • 2.2模块化加载配置
  • 3.模块开发
  • 3.1控制器注册
  • 3.2控制器业务层注册
  1. 项目实战

模块开发流程

1.新建模块

  1. 在modules目录下新建模块目录

  2. 在模块目录下新建模块文件,exam.html、exam.js,如有样式表需要,可以再新建exam.scss

    1.1文件说明

    .1. html文件为页面内容区域的渲染文件

  3. js文件为模块文件,包含控制器注册,业务层处理,如有需要,可以拆分为多个JS文件

2.配置模块

配置模块的步骤 1. 路由配置 2. 模块化加载配置

2.1路由配置

参照modules/common/js/app.js

/**
 * 路由器配置
 * 
 * {
 *         state        : <string>,            //路由器状态名
 *         url            : <string>,            //访问url,为 依赖状态的url + 自身url
 *         views        : <json>,            //路由页面的html模板配置
 *         useModule    : <string>            //使用的RequireJS模块,初始化页面时会加载该模块的依赖文件
 * }
 */
var routerConfig = [
    {
        state    : "index",
        url        : "/",
        views    : {
            '' : {templateUrl : 'modules/common/html/layout.html'},
            'sidebar@index' : {templateUrl : 'modules/common/html/sidebar.html'},
            'top@index' : {templateUrl : 'modules/common/html/top.html'}
        },
        useModule    : 'com'
    },

    {
        state    : "index.app",
        url        : "app",
        views    : {
            'content@index' : {templateUrl : 'modules/app/app.html'}
        },
        useModule    : 'app'
    },

    {
        state    : "index.quota",
        url        : "quota",
        views    : {
            'content@index' : {templateUrl : 'modules/quota/quota.html'}
        },
        useModule    : 'quota'
    }
]

2.2模块化加载配置

参照modules/common/js/app.js

/**
 * requireJS配置
 * 
 * paths : {
 *         <moduleName>        : <string or Array>            //模块的JS文件配置,
 * }    
 * shim : {
 *         <moduleName>        : <string or Array>            //模块的CSS文件配置,
 * }
 */
var requirejsConfig = {
    paths : {
        'com'            : 'modules/common/js/controller/controller',
        'util'            : 'modules/common/js/util',
        'directive'        : 'modules/common/js/directive/directive',
        'service'        : 'modules/common/js/service/service',
        'quota'            : 'modules/quota/quota',
        'app'             : ['modules/app/app']
    },
    shim : {
        'app'            : ['css!modules/app/app.css']
    },
    map: {'*': {'css'    : 'components/require-css/css'}}
};
require.config(requirejsConfig);

3.模块开发

3.1控制器注册

参照modules/app/app.js

/**
 * appController 对应app.html的指令ng-controller="appController"
 * 
 * 这里引入了自定义服务$$host,引入于service模块(modules/common/js/service/main.js)
 */
App.register.controller("appController", function($scope, $$http){
    // AppUtil.call($scope, $$http);

    // $$host.getHost();
    // $scope.getList();
})

3.2控制器业务层注册

参照modules/app/app.js

3.2.1.定义业务层

3.2.2注册业务层

/**
 * 使用Function的call方法注册
 */
App.register.controller("appController", function($scope, $$http){
    AppUtil.call($scope, $$http);
    $scope.getList();
})
Previous目录结构Next公共模块编辑

Last updated 7 years ago