详解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 相关文章推荐
javascript 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
JS的replace方法介绍
Oct 20 Javascript
常规表格多表头查询示例
Feb 21 Javascript
javascript bom是什么及bom和dom的区别
Nov 26 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
基于AngularJS前端云组件最佳实践
Oct 20 Javascript
浅谈JavaScript异步编程
Jan 20 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
js处理包含中文的字符串实例
Oct 11 Javascript
LayerClose弹窗关闭刷新方法
Aug 17 Javascript
彻底揭秘keep-alive原理(小结)
May 05 Javascript
原生JS实现天气预报
Jun 16 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
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
python中类的属性和方法介绍
2018/11/27 Python
python的sorted用法详解
2019/06/25 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
物业经理求职自我评价
2013/09/22 职场文书
护士思想汇报
2014/01/12 职场文书
黄河绝恋观后感
2015/06/08 职场文书
航班延误投诉信
2015/07/02 职场文书
妇产科护理心得体会
2016/01/22 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技