Angular路由ui-router配置详解


Posted in Javascript onAugust 01, 2018

简介

angularJs自身提供路由ng-router,但是ng-router不是很好用,配置项零散,好比Vue提供的组件传值一样,虽然提供给你了用法,但是开发过程中逻辑一多用着萌萌的,所以我们抛开ng-router来看ui-router。

引入ui-router

我们可以去bootCDN搜索ui-router,本地创建js文件,将代码copy进去使用,这样就可以打入本地使用了,但是要注意的是,Angular的main.js一定要在ui-router之前引用,注意一下先后顺序问题。

例如:

<script src="angular.main.js"></script>
<script src="angular-ui-router.js"></script>

配置ui-router

//angular.module("moduleName",dep); 定义模块依赖(两个参数)
  //angular.module("moduleName"); 获取模块 (一个参数)
  var app = angular.module("myApp",["ui-router"]);
  app.config(["$stateProvider","$urlRouterProvider",function($stateProvider){
      //app.config配置项
      //$stateProvider 状态供应商,(名字可以看出关于路由的一系列配置需要由$stateProvider完成)
      //$urlRouterProvider 路由重定向
      $stateProvider.state("home",{
        url: "/home"
        template: "<h1>首页</h1>"
      }) .state("about",{
          url: "/about"
          template: "关于我们"
      });
      $urlRouterProvider.otherwise("home")
  }])

页面配置

<div ui-view></div>  //相当于Vue中的插槽,单页面应用切换路由用来显示当前路由界面
<a ui-sref="home">首页</a> //Angular默认会转换为href
<a ui-sref="about">关于我们</a> //Angular默认会转换为href

路由激活状态样式

ui-sref-active="active"

完整代码

<html ng-app="myApp">
<head>
<style>
.active{
color: red
}
</style>
<script src="angular.main.js"></script>
<script src="angular-ui-router.js"></script>
</head>
<body>
<div ui-view></div>
<footer>
<a ui-sref="home" ui-sref-active="active">首页</a>
<a ui-sref="about" ui-sref-active="active">关于</a>
<a ui-sref="items">商品</a>
</footer>
</body>
<script>
var app = angular.module("myApp", [ui-router]);            app.config(["$stateProvider","$urlRouterProvider",function($stateProvider){
$stateProvider.state("home",{
url: "/home"
template: "首页"
}) .state("about",{
url: "/about"
template: "关于我们"
}).state("items",{//牛逼的潜逃路由
url: "/items",
templateUrl: "./items.html",
controller:["$scope",$state,function($scope,$state){
$scope.jump = function(){
$state.go("home");
}
$scope.jumpOther = function() {
$state.go("items.phone",{
id: "phone"
});
}
}]
}).state("items.comp",{
url: "/comp",
template: "<h1>电脑商品</h1>"
}).state("item.phone",{
url:"phone/:id",
template:"<h1>手机商品</h1>",
controller:["$scope","$stateParams",function($scope,$stateParams){
console.log($stateParams);
}]
});
$urlRouterProvider.otherwise("home")
}
</script>
</html>

嵌套路由页面

<div>
          <h1>商品展示</h1>
          <button ng-click="jump()">点击跳转首页</button>
          <a ui-sref="about">跳转至关于我们</a>
          <button ng-click="jumpOther()">穿参数</button>
          <a ui-sref="items.other({id:"sref"})"></a>
          <ul>
              //因为我们外面父级路由是items所以自路由用items为前缀
            <li><a ui-sref="items.comp">电脑</a></li>
            <li><a ui-sref="items.phone">手机</a></li>
          </ul>
          <div ui-view></div>
      </div>

总结

以上所述是小编给大家介绍的Angular路由ui-router配置详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
关于Javascript 的 prototype问题。
Jan 03 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
JQuery工具函数汇总
Jun 15 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
利用JQuery阻止事件冒泡
Dec 01 Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
React Native 使用Fetch发送网络请求的示例代码
Dec 02 Javascript
微信小程序实现留言板功能
Nov 02 Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 Javascript
vue 组件开发原理与实现方法详解
Nov 29 Javascript
浅谈vue权限管理实现及流程
Apr 23 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
Aug 01 #Javascript
JavaScript事件冒泡与事件捕获实例分析
Aug 01 #Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
Aug 01 #Javascript
create-react-app 修改为多入口编译的方法
Aug 01 #Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
Aug 01 #Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 #Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 #Javascript
You might like
PHP+DBM的同学录程序(5)
2006/10/09 PHP
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
PHP 错误处理机制
2015/07/06 PHP
PHP CURL使用详解
2019/03/21 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
python记录程序运行时间的三种方法
2017/07/14 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
python3 反射的四种基本方法解析
2019/08/26 Python
python随机数分布random均匀分布实例
2019/11/27 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
校园之声广播稿
2014/01/31 职场文书
会走路的树教学反思
2014/02/20 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书