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 相关文章推荐
IE 上下滚动展示模仿Marquee机制
Dec 20 Javascript
理解Javascript_12_执行模型浅析
Oct 18 Javascript
javascript制作loading动画效果 loading效果
Jan 14 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
Mar 03 Javascript
百度地图自定义控件分享
Mar 04 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
Aug 31 Javascript
微信小程序  checkbox组件详解及简单实例
Jan 10 Javascript
js eval函数使用,js对象和字符串互转实例
Mar 06 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
Vue打包后出现一些map文件的解决方法
Feb 13 Javascript
iview table高度动态设置方法
Mar 14 Javascript
JavaScript变量Dom对象的所有属性
Apr 30 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
终于听上了直流胆调频
2021/03/02 无线电
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
jquery 学习之二 属性相关
2010/11/23 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
JS实现简单随机3D骰子
2019/10/24 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
pandas中去除指定字符的实例
2018/05/18 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
瀑布模型都有哪些优缺点
2014/06/23 面试题
小学生竞选班长演讲稿
2014/04/24 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
golang 实现并发求和
2021/05/08 Golang
mysql 带多个条件的查询方式
2021/06/05 MySQL
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python