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 相关文章推荐
通过jquery的$.getJSON做一个跨域ajax请求试验
May 03 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 Javascript
angularjs表格ng-table使用备忘录
Mar 09 Javascript
js学习笔记之事件处理模型
Oct 31 Javascript
实例解析angularjs的filter过滤器
Dec 14 Javascript
微信小程序中顶部导航栏的实现代码
Mar 30 Javascript
JS简单实现动态添加HTML标记的方法示例
Apr 08 Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 Javascript
vue实现自定义多选按钮
Jul 16 Javascript
React冒泡和阻止冒泡的应用详解
Aug 18 Javascript
vue界面发送表情的实现代码
Sep 11 Javascript
js 实现碰撞检测的示例
Oct 28 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防止form重复提交的方法
2013/07/01 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
浅析Python中的多重继承
2015/04/28 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
如何基于Python按行合并两个txt
2020/11/03 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
新学期开学演讲稿
2014/05/24 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
单位接收函范文
2015/01/30 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
村主任当选感言
2015/08/01 职场文书
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python