采用angularjs+requirejs+ui-route搭出前端路由经验

使用angularjs+requirejs+ui-route+angularAMD搭出路由机制,按需进行js的加载

1:需要导入的js文件有
(1):angular.js
(2):require.js
(3):angular-ui-router.js
(4):angularAMD.js//用于app.js中配置路由
2:main.js的编写:requirejs主要的文件包括一个主要的js(main.js)main.js里面是项目开始就需要引入的js,它是项目js的入口,就相当于java语言或者C语言中的main()函数,并且采用AMD规范来写。学习require.js建议参考(require.js用法详解)参考代码如下
define(function(){

//config配置模块

require.config({
//baseUrl:用来指定加载模块的目录
//baseUrl:"js/injs",
//paths,是指定模块的加载路径。
paths:{
"angular":"/questionnairePrj/js/angular/angular",
"jquery":"/questionnairePrj/js/jquery-2.1.1/jquery",
"angularAMD":"/questionnairePrj/js/angular/angularAMD",
"angular-ui-router":"/questionnairePrj/js/angular/angular-ui-router",
"ngload":"/questionnairePrj/js/angular/ngload",
"angularResource":"/questionnairePrj/js/angular/angular-resource"
},
//shim:是配置不兼容的模块。
shim : {
"angular" : {
exports : "angular"
},
"angular-ui-router":["angular"],
"angularAMD":["angular"],
"ngload":["angularAMD"],
"ngResource":["angular"],
'angularResource': ['angular'],
},
//deps:用来指定依赖模块,requireJS会加载这个文件并执行。
deps : ['app']
});


});

3:app.js的编写:一个用于路由的js(app.js),app.js里面配置的是自己的路由。具体参考代码如下


//采用angularAMD规范写
define(["angular","angularAMD","angular-ui-router","angularResource"],function(angular,angularAMD){
//实例化angularJS
var app = angular.module("app",['ui.router','ngResource']);
//配置
app.config(function($stateProvider, $urlRouterProvider,$rootScopeProvider){
$urlRouterProvider.otherwise("/login");
$stateProvider

.state("login",angularAMD.route({
url:"/login",
templateUrl:"../html/login.html",
controller:"login",
controllerUrl:["../js/injs/js/login.js"]//切记,这里一定是一个数组
}))

.state("index",angularAMD.route({
url:"/index",
templateUrl:"../html/file.html",
controller:"my"
}))

.state("home",angularAMD.route({
url:"/home",
templateUrl:"../html/home.html",
controller:"homeController",
controllerUrl:["../js/injs/js/home.js"]
}))

.state("questionnireCenter",angularAMD.route({
url:"/questionnireCenter",
templateUrl:"../html/questionnire/QuestionnaireCenter.html",
controllerUrl:["../js/injs/js/questionnire/questionnireCenter.js",
"../js/injs/js/questionnire/questionnireService.js"]
}))
});
return angularAMD.bootstrap(app);
});

当这两个文件写好后,在主界面里面引入main.js和一些依赖的js就行了。示例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>问卷制作(桥)</title>


<link href="../css/incss/index.css" rel="stylesheet"
type="text/css">
<link href="../css/incss/common.css" rel="stylesheet" type="text/css">
<link href="../css/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css">
<script src="../js/jquery-2.1.1/jquery.js"type="text/javascript"></script>
<script src="../js/require/require.js" data-main="/questionnairePrj/js/injs/main.js"></script>这里就是引入的require.js,用来加载js,data-main=""指明入口js

</head>
<body>
<div ui-view class="container-fluid"></div>
</body>
</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值