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 相关文章推荐
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
JS执行删除前的判断代码
Feb 18 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
Mar 10 Javascript
跟我学习javascript的var预解析与函数声明提升
Nov 16 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
js仿百度音乐全选操作
Jan 13 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 Javascript
最通俗易懂的javascript变量提升详解
Aug 05 Javascript
vue.extend与vue.component的区别和联系
Sep 19 Javascript
VUE 实现复制内容到剪贴板的两种方法
Apr 24 Javascript
react+antd 递归实现树状目录操作
Nov 02 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
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
python如何读写json数据
2018/03/21 Python
Python中list查询及所需时间计算操作示例
2018/06/21 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
德国网上宠物店:Zoobio
2018/05/23 全球购物
经典大学生求职信范文
2014/01/06 职场文书
打架检讨书500字
2014/01/29 职场文书
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技
windows server2008 开启端口的实现方法
2022/06/25 Servers