详解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 相关文章推荐
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
Jan 16 Javascript
使用JS 清空File控件的路径值
Jul 08 Javascript
jquery批量设置属性readonly和disabled的方法
Jan 24 Javascript
元素绑定click点击事件方法
Jun 08 Javascript
jQuery实现html元素拖拽
Jul 21 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
Mar 15 Javascript
JavaScript中附件预览功能实现详解(推荐)
Aug 15 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
Nov 10 Javascript
基于JavaScript canvas绘制贝塞尔曲线
Dec 25 Javascript
vue实现验证用户名是否可用
Jan 20 Vue.js
详解在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
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
Python探索之创建二叉树
2017/10/25 Python
Python拼接字符串的7种方式详解
2020/03/19 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
优秀党员转正的自我评价
2013/10/06 职场文书
国际经济贸易专业推荐信
2013/11/06 职场文书
保密工作整改报告
2014/11/06 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
个人党性锻炼总结
2015/03/05 职场文书
奖励通知
2015/04/22 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
辞职信怎么写?
2019/05/21 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
Django框架之路由用法
2022/06/10 Python