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 相关文章推荐
js 弹出框 替代浏览器的弹出框
Oct 29 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
Apr 28 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
Mar 11 Javascript
javascript中Date对象的getDay方法使用指南
Dec 22 Javascript
jQuery遮罩层效果实例分析
Jan 14 Javascript
jQuery基于Ajax方式提交表单功能示例
Feb 10 Javascript
微信小程序开发注意指南和优化实践(小结)
Jun 21 Javascript
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
微信小程序 wx:for遍历循环使用实例解析
Sep 09 Javascript
简单了解JavaScript弹窗实现代码
May 07 Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 Javascript
从原生JavaScript到React深入理解
Jul 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(1)
2006/10/09 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
JavaScript 函数调用规则
2009/09/14 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
javascript事件模型介绍
2016/05/31 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
Python中的装饰器用法详解
2015/01/14 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
python批量赋值操作实例
2018/10/22 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
Django的性能优化实现解析
2019/07/30 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
方正Java笔试题
2014/07/03 面试题
《花的勇气》教后反思
2014/02/12 职场文书
六一儿童节主持词
2014/03/21 职场文书
新农村建设汇报材料
2014/08/15 职场文书
大学生个人总结范文
2015/02/15 职场文书
遗愿清单观后感
2015/06/09 职场文书
企业安全生产规章制度
2015/08/06 职场文书
Python OpenCV实现图形检测示例详解
2022/04/08 Python
图神经网络GNN算法
2022/05/11 Python