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.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
Nov 28 Javascript
JS对象转换为Jquery对象示例
Jan 26 Javascript
使用JavaScript制作一个简单的计数器的方法
Jul 07 Javascript
基于jQuery实现淡入淡出效果轮播图
Jul 31 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
koa上传excel文件并解析的实现方法
Aug 09 Javascript
JS通过位运算实现权限加解密
Aug 14 Javascript
详解如何为你的angular app构建一个第三方库
Dec 07 Javascript
js实现一款简单踩白块小游戏(曾经很火)
Dec 02 Javascript
vue.js click点击事件获取当前元素对象的操作
Aug 07 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
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
一个实用的php验证码类
2017/07/06 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
wxpython 学习笔记 第一天
2009/03/16 Python
利用python如何处理nc数据详解
2018/05/23 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
社区先进事迹材料
2014/05/19 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
土建施工员岗位职责
2015/04/11 职场文书
离婚代理词范文
2015/05/23 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android