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 相关文章推荐
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 Javascript
微信小程序 教程之WXML
Oct 18 Javascript
jquery心形点赞关注效果的简单实现
Nov 14 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
Dec 22 Javascript
JavaScript实现弹出广告功能
Mar 30 Javascript
微信小程序 五星评分的实现实例
Aug 04 Javascript
浅谈webpack下的AOP式无侵入注入
Nov 12 Javascript
vue组件中使用props传递数据的实例详解
Apr 08 Javascript
vuex vue简单使用知识点总结
Aug 29 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
Egg Vue SSR 服务端渲染数据请求与asyncData
Nov 24 Javascript
关于vue-router-link选择样式设置
Apr 30 Vue.js
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静态类
2006/11/25 PHP
php递归调用删除数组空值元素的方法
2015/04/28 PHP
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
老生常谈js中的MVC
2017/07/25 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
python登陆asp网站页面的实现代码
2015/01/14 Python
Python中用Spark模块的使用教程
2015/04/13 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
对numpy中轴与维度的理解
2018/04/18 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
水产养殖学应届生求职信
2013/09/29 职场文书
银行职员思想汇报
2013/12/31 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
党的生日活动方案
2014/08/15 职场文书
小浪底导游词
2015/02/12 职场文书
监守自盗观后感
2015/06/10 职场文书
宾馆安全管理制度
2015/08/06 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书