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 相关文章推荐
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
Jan 13 Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
JS实现回到页面顶部动画效果的简单实例
May 24 Javascript
JavaScript数组迭代方法
Mar 03 Javascript
基于JavaScript实现选项卡效果
Jul 21 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 Javascript
详解 vue better-scroll滚动插件排坑
Feb 08 Javascript
vue js秒转天数小时分钟秒的实例代码
Aug 08 Javascript
layui 设置table 行的高度方法
Aug 17 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 Javascript
了解Javascript中函数作为对象的魅力
Jun 19 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 文件夹删除、php清除缓存程序
2009/08/25 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
Js sort排序使用方法
2011/10/17 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
详解JavaScript的表达式与运算符
2015/11/30 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
班主任工作经验材料
2014/02/02 职场文书
2014年变电站工作总结
2014/12/19 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
小学新课改心得体会
2016/01/22 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
python 网络编程要点总结
2021/06/18 Python
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android
Python使用openpyxl模块处理Excel文件
2022/06/05 Python