详解AngularJS ui-sref的简单使用


Posted in Javascript onApril 24, 2017

此篇关于AngularJS ui-sref的简单使用,最近刚好学习,就顺便发到随笔上了

具体用法:

<a ui-sref="man">男人</a>

这是一个非常简单的ui-sref的使用,当JavaScript重新生成网页时,它会查找$state中名为“man”的state,读取这个state的url,然后在a标签里生成href="url" rel="external nofollow" ,

结果为: <a ui-sref="man" href="#/man.html" rel="external nofollow" >男人</a>

但如果,你在创建一个导航控制器,里面有一个导航item的数组:

$scope.items = [ 
 {state: "man", statePage: "man.html"}, 
 {state: "womanMe", statePage: "woman.html"} 
]

然后在html中使用repeat:

<li repeat="item in items"> 
<a ui-sref="{{item.statePage}}"><{{item.state}}</a> 
</li>

ui-sref不支持动态绑定,这样的代码会报错。sref中你只能使用state名,顶多加点参数。

这样的话,你只能放弃sref,用回href绑定,你可以用$state.href来读取state的url。

下面简单介绍下ui-sref参数的传递

页面写法如下

<a ui-sref="man({id:1,name:2})" >按钮</a>

路由里面配置:

$stateProvider.state('man', { 
  url: '/man.html?id&name',     //参数必须先在这边声明 
  templateUrl: '../man.html', 
})

点击连接后,浏览器的地址则会变为:/man.html/id=1&name=2

或者也可以这样

$stateProvider.state('man', { 
  url: '/man.html',      
  templateUrl: '../man.html', 
  params: {'id': null,'name':null},//参数在这边声明 
 
})

 然后在对应的controller里面通过$stateParams取值:$stateParams.id,$stateParams.name

其实ui-sref和$state.go本质上是一个东西,可以看看ui-sref源码

element.bind("click", function(e) { 
  var button = e.which || e.button; 
  if ( !(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || element.attr('target')) ) { 
 
   var transition = $timeout(function() { 
    // HERE we call $state.go inside of ui-sref 
    $state.go(ref.state, params, options); 
   });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在js中判断checkboxlist(.net控件客户端id)是否有选中
Apr 11 Javascript
jquery动态加载js三种方法实例
Aug 03 Javascript
js 遍历json返回的map内容示例代码
Oct 29 Javascript
javascript运行机制之this详细介绍
Feb 07 Javascript
javascript学习笔记(八)正则表达式
Oct 08 Javascript
jquery延迟对象解析
Oct 26 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
Jul 03 Javascript
vue loadmore 组件滑动加载更多源码解析
Jul 19 Javascript
详解Vue路由钩子及应用场景(小结)
Nov 07 Javascript
微信小程序实现两个页面传值的方法分析
Dec 11 Javascript
JS使用Dijkstra算法求解最短路径
Jan 17 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
Sep 24 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
Apr 24 #Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 #Javascript
angular中实现控制器之间传递参数的方式
Apr 24 #Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
Apr 24 #Javascript
JS实现加载和读取XML文件的方法详解
Apr 24 #Javascript
JS简单获取日期相差天数的方法
Apr 24 #Javascript
Angular.js中控制器之间的传值详解
Apr 24 #Javascript
You might like
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
PHP中each与list用法分析
2016/01/08 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
删除重复数据的算法
2006/11/23 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
详解Python:面向对象编程
2019/04/10 Python
python super用法及原理详解
2020/01/20 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
小学生环保演讲稿
2014/04/25 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL