1、入口页面

存放地址:src/main/webapp/WEB-INF/view/workflow/workflow.jsp

[html] view plain copy 在CODE上查看代码片派生到我的代码片

<!DOCTYPE html>

<html lang="zh">

<head>

<meta charset="UTF-8">

<title></title>

<link href="<%=request.getContextPath()%>/static/css/bootstrap/3.3.5/bootstrap.min.css" rel="stylesheet">

<link href="<%=request.getContextPath()%>/static/css/sweetalert/sweetalert.css" rel="stylesheet" >

<link href="<%=request.getContextPath()%>/static/css/angularCommon.css" rel="stylesheet" >

<script data-main="<%=request.getContextPath()%>/static/js/workflow/app.js" src="<%=request.getContextPath()%>/static/js/bower_components/requirejs/require.js"></script>

</head>

<body>

<div>

<h1>这里是公共头部</h1>

</div>

<div ng-controller = "baseCtrl">

<!--     <button ng-click = "baseClick()">按钮测试</button> -->

<div ui-view></div>

</div>

<div>

<h1>这里是公共尾部</h1>

<button id = "test">根据js内容动态显示</button>

</div>

</body>

</html>

在上面引入了requirejs

2、app.js

[html] view plain copy 在CODE上查看代码片派生到我的代码片

require.config({

paths: {

"angular": "../angular/1.5.3/angular.min",

"angular-messages":"../angular/1.5.3/angular-messages.min",

"angular-locale_zh-cn":"../angular/1.5.3/angular-locale_zh-cn",

"angular-ui-router": "../bower_components/angular-ui-router/release/angular-ui-router",

"angularAMD": "../bower_components/angularAMD/angularAMD",

"ngload": "../bower_components/angularAMD/ngload",

"sweetalert": "../sweetalert/sweetalert.min",

"uiBootstrap": "../angular-ui-bootstrap/1.2.4/ui-bootstrap-tpls-1.2.4.min",

"commonFunction":"../angularCommon/commonFunction",

"commonValueAndUrl":"../angularCommon/commonValueAndUrl",

"workFlowCommonModule":"../angularCommon/workFlowCommonModule"

},

shim: {

"angular": { exports: "angular" },

"workFlowCommonModule": ["angular"],

"angular-messages": ["angular"],

"angular-locale_zh-cn": ["angular"],

"commonValueAndUrl": ["commonFunction"],

"angular-ui-router": ["angular"],

"uiBootstrap": ["angular-ui-router"],

"angularAMD": ["angular"],

"ngload": ["angularAMD"]

}

});

define(["angular", "angularAMD", "angular-ui-router","sweetalert","uiBootstrap","angular-messages","angular-locale_zh-cn","commonFunction","commonValueAndUrl","workFlowCommonModule"], function (angular, angularAMD) {

var registerRoutes = function($stateProvider, $urlRouterProvider) {

$urlRouterProvider.otherwise("/home");

$stateProvider.state("home", angularAMD.route({

url: "/home",

templateUrl: "../static/js/workflow-view/home-view.js",

controllerUrl: "../static/js/workflow/home.js"

}))

.state("about", angularAMD.route({

url: "/about",

templateUrl: "../static/js/workflow-view/about-view.js",

controllerUrl: "../static/js/workflow/about.js"

}))

;

};

var app = angular.module("app", ["ui.router",'ui.bootstrap','ngMessages','commonModule']);

app.config(["$stateProvider", "$urlRouterProvider", registerRoutes]);

app.controller('baseCtrl',function($scope,$uibModal,sendAjaxFactory) {

$scope.baseClick = function () {

swal("测试按钮")

}

});

return angularAMD.bootstrap(app);

});

在这里引入了一些需要的模块,其中就一些模块是笔者我自己写的。有的是第三方插件的

这里特别注意,由于SpringMVC会拦截.jsp结尾的文件。所以动态加载 的页面笔者都写到js文件中。如上面的about-view.js和home-view.js.其要动态加载的js文件分别 为about.js和home.js。如果不使用SpringMVc。那么动态加载的页面就可以不用写到js文件中(笔者 的工程中配置了拦截.jsp文件,不拦截.js文件)

AngularJS+RequireJs实现动态加载JS和页面的方案研究【上】的更多相关文章

  1. AngularJS+RequireJs实现动态加载JS和页面的方案研究【中】

    3.动态加载的内容: home.js [html] view plain copy 在CODE上查看代码片派生到我的代码片 define(['app'], function(app) { app.co ...

  2. AngularJS+RequireJs实现动态加载JS和页面的方案研究【下】

    about.js: [html] view plain copy 在CODE上查看代码片派生到我的代码片 define(['app'], function(app) { app.controller( ...

  3. [AngularJS] 使用AngularAMD动态加载Controller

    [AngularJS] 使用AngularAMD动态加载Controller 前言 使用AngularJS来开发Single Page Application(SPA)的时候,可以选用AngularU ...

  4. [AngularJS] 使用AngularCSS动态加载CSS

    [AngularJS] 使用AngularCSS动态加载CSS 前言 使用AngularAMD动态加载Controller 使用AngularAMD动态加载Service 上列两篇文章里,介绍了如何如 ...

  5. [AngularJS] 使用AngularAMD动态加载Service

    [AngularJS] 使用AngularAMD动态加载Service 前言 「使用AngularAMD动态加载Controller」:这篇文章里介绍如何使用AngularAMD来动态加载Contro ...

  6. 使用jQuery动态加载js脚本

    动态加载Javascript是一项非常强大且有用的技术.这方面的主题在本站已经讨论了不少,我也经常会在一些个人项目上使用RequireJS和Dojo加载js.它们很强大,但有时候也会得不偿失.如果你使 ...

  7. 使用jQuery动态加载js脚本文件的方法

    动态加载Javascript是一项非常强大且有用的技术.这方面的主题在网上已经讨论了不少,我也经常会在一些个人项目上使用RequireJS和Dojo加载js 它们很强大,但有时候也会得不偿失.如果你使 ...

  8. JavaScript动态加载js文件

    /********************************************************************* * JavaScript动态加载js文件 * 说明: * ...

  9. 动态加载js和css

    开发过程中经常需要动态加载js和css,今天特意总结了一下常用的方法. 1.动态加载js 方法一:动态加载js文件 // 动态加载js脚本文件 function loadScript(url) { v ...

随机推荐

  1. github访问慢加速访问

    实测从1kb到了1m多 方法: 登录 https://www.ipaddress.com/ 输入github.com得到一个或两个IP地址 输入github.global.ssl.fastly.net ...

  2. Android Fragment向另一个Activity传值

    1.Fragment内: Intent intent=new Intent(getActivity(),ShowDataActivity.class); //参数1:Fragment所依存的Activ ...

  3. springcloud(十)-Zuul微服务网关

    为什么要使用微服务网关 前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服 ...

  4. Windows开发经验 - WinDbg

    1. 远程调试 参考文章:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/remode-debugging-usi ...

  5. centos 6.6 设备 xxx 似乎不存在, 初始化操作将被延迟

    2019-04-02 问题描述: centos 6.6开启虚拟机之后,网卡服务不能正常启动,报错信息为:设备 xxx(网卡名称)似乎不存在, 初始化操作将被延迟 解决办法: 清空70-persiste ...

  6. C# this关键字(给底层类库扩展成员方法)

    本文参考自唔愛吃蘋果的C#原始类型扩展方法—this参数修饰符,并在其基础上做了一些细节上的解释 1.this作为参数关键字的作用 使用this关键字,可以向this关键字后面的类型添加扩展方法,而无 ...

  7. android常用Linux命令

    安卓下面有个软件叫终端模拟器,其实就是Linux下的命令行,使用这些命令能有效处理问题. 1.基本知识 “/”,这个英文字母斜杠指的是根目录,类似Windows的C:\,但是Linux下只有一个根目录 ...

  8. Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  9. unity 2018获取本地ip 问题,ipaddress

    Network.Player.ipAddress这个API在Unity2018被移除了 用如下代码 using System.Net; using System.Net.NetworkInformat ...

  10. 09 jdk1.5的并发容器:ConcurrentHashMap

    一 概述 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能 因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是 ...