angular.js + require.js构建模块化单页面应用的方法步骤

发布时间 - 2026-01-11 02:24:57    点击率:

前言

本文主要给大家介绍的是关于利用angular.js + require.js构建模块化单页面应用的方法,分享出来供大家参考学习,需要的朋友们下面来一起看看详细的介绍吧。

AngularJS描述:

angularjs是可以用来构建WEB应用的,WEB应用中的一种端对端的完整解决方案。通过开发者呈现一个更高层次的抽象来简化应用的开发。最适合的就是用它来构建一个CRUD应用,它提供了非常方便的且统一高效的解决方案,其数据绑定、基本模版标识符、表单验证、路由、深度链接、组件重用、依赖注入、以及HTML标记等,最受欢迎的莫过于它的双向数据绑定。

requireJS描述:

requireJS是来解决传统的页面加载script标记操作,通过其初始化配置实现按需、并行、延时的载入js库,声明不同js文件之间的依赖关系,它是遵循前端AMD规范(异步模块加载)。js代码可以以模块化的方式进行组织(模块化编程)。模块化的意义就是通过代码逻辑表明模块之间的依赖关系和执行顺序,按照模块逻辑来分解代码,起到配合mvc框架架构项目的作用。

整合:

使用requireJS模块化定义模块质检的依赖关系,打包不需要文件挨个对照,很方便。将script脚本从模版页面中抽离出来,通过js当前模块加载需要依赖的js模块。按需加载。路由更加方便。

实践—–目录结构

这里文件目录可以根据项目需求自由调整

实践—–index.html

和正常的html写法一样,这里要注意引入js时只要引用main和require.js,由require.js去动态加载所需要的js

<div class="main">
 <div class="header">
  <div class="right-bar">
   <span class="welcome">当前用户:<b>...</b> <button class="btn btn-info btn-xs"><i class="fa fa-sign-out"></i> 注销</button></span>
  </div>
 </div>
 <div class="mainContent has-shadow">
  <div ng-view></div>
 </div>
</div>
<script data-main="js/main" src="js/libs/require.js"></script>//只要引用main和require.js

实践—–入口文件main.js

实例化require.js并配置各种js的路径以及依赖关系,初始化整个项目

/**
 * 入口文件
 */
require.config({
 baseUrl: "js/",
 paths: {
  "jquery": "libs/jquery203",
  "angular" : "libs/angular.min",
  "angular-route" : "libs/angular-route.min",
  "angular-sanitize" : "libs/angular-sanitize.min",


  "app" : "controllers/app",
  "loadingInterceptor" : "controllers/loadingInterceptor",
  "run_stateCtrl" : "controllers/run_stateCtrl",

  "route" : "routes/appRoute"
 },
 shim: {
  'angular': {
   exports: 'angular'
  },
  'angular-route':{
   deps: ["angular"],
   exports: 'angular-route'
  },
  'angular-sanitize':{
   deps: ["angular"],
   exports: 'angular-sanitize'
  }
 }
});
require(['jquery','angular','angular-route','angular-sanitize','app','loadingInterceptor','route','run_stateCtrl'],function ($,angular){

  $(function () {

   angular.bootstrap(document,["myApp"]);//初始化整app

  })

});

实践—–建立angular.module 即app.js

建立angular.module,所有的操作都是在angular.module的基础上进行的

/**
 * 建立angular.module
 */
define(['angular'], function (angular) {
 var app = angular.module('myApp', ['ngRoute','ngSanitize','ajaxLoading']);//引入需要以来的模块
 return app;
});

实践—–建立路由

不同的模块被加载进主视图,并绑定控制器

/**
 * 路由
 */
define(['app'], function(app){
 return app.config(['$routeProvider',function($routeProvider) {
   $routeProvider
    .when('/', {
    templateUrl: 'js/views/run_state.html',
    controller: 'run_stateCtrl'
    })
    .when('/xq', {
    templateUrl: 'js/views/xq.html',
    controller: 'xqCtrl'
    })
    .otherwise({ redirectTo: '/' });
 }])
});

实践—–模块控制器

被路由绑定的模块控制器,控制着当前模块的业务流程

define(['app'], function(app){  
 return app.controller('run_stateCtrl', ['$scope','$rootScope','$http', function ($scope,$rootScope,$http) {

   $rootScope.headTitle = $rootScope.title = "hello,angular!";
   $rootScope.appName = $rootScope.span = "angular侧导航";
   $scope.getMore = function(){
    angular.element('.state').text('正在运行')
   };
   $http.get('./json/215145.json').
    success(function(data) {
    $scope.branchs = data.branchs;    
    });
  }])
});

总结

整体的模块搭建完之后,具体的业务流程,根据angularjs的API来具体实现功能。

好了,以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# angularjs  # 页面模块化  # require  # angularjs整合require  # requirejs按需加载angularjs文件实例  # angularJS+requireJS实现controller及directive的按需加载示例  # 探索angularjs+requirejs全面实现按需加载的套路  # 小心!AngularJS结合RequireJS做文件合并压缩的那些坑  # 简单谈谈require模块化jquery和angular的问题  # requirejs AngularJS结合使用示例解析  # 加载  # 绑定  # 按需  # 的是  # 是在  # 好了  # 不需要  # 基础上  # 它是  # 朋友们  # 要注意  # 更高  # 给大家  # 这篇文章  # 谢谢大家  # 可以根据  # 最适合  # 表单  # 所需要  # 最受欢迎 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何在云指建站中生成FTP站点?  如何快速搭建自助建站会员专属系统?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  如何基于云服务器快速搭建网站及云盘系统?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  重庆市网站制作公司,重庆招聘网站哪个好?  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何快速生成专业多端适配建站电话?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  如何快速生成可下载的建站源码工具?  北京网站制作的公司有哪些,北京白云观官方网站?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  如何在企业微信快速生成手机电脑官网?  如何在建站主机中优化服务器配置?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Firefox Developer Edition开发者版本入口  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何在云服务器上快速搭建个人网站?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  微信小程序 HTTPS报错整理常见问题及解决方案  简单实现Android文件上传  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  iOS中将个别页面强制横屏其他页面竖屏  高端网站建设与定制开发一站式解决方案 中企动力  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  如何在 React 中条件性地遍历数组并渲染元素  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  Python结构化数据采集_字段抽取解析【教程】  如何快速打造个性化非模板自助建站?  如何用腾讯建站主机快速创建免费网站?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  如何在万网开始建站?分步指南解析  如何用免费手机建站系统零基础打造专业网站?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  如何快速使用云服务器搭建个人网站?