详解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 相关文章推荐
激活 ActiveX 控件
Oct 09 Javascript
给Javascript数组插入一条记录的代码
Aug 30 Javascript
js判断生效时间不得大于失效时间的思路及代码
Apr 23 Javascript
js转义字符介绍
Nov 05 Javascript
JS选取DOM元素的简单方法
Jul 08 Javascript
Vue.js每天必学之计算属性computed与$watch
Sep 05 Javascript
AngularJs表单校验功能实例代码
Feb 09 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
vue源码学习之Object.defineProperty 对数组监听
May 30 Javascript
vue使用nprogress实现进度条
Dec 09 Javascript
浅谈TypeScript的类型保护机制
Feb 23 Javascript
Javascript实现单选框效果
Dec 09 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封装的MSSql操作类完整实例
2016/05/26 PHP
php实现socket推送技术的示例
2017/12/20 PHP
php工具型代码之印章抠图
2018/07/18 PHP
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
javascript 实现map集合
2015/04/03 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
2018/02/22 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python中使用logging模块打印log日志详解
2015/04/05 Python
python实现折半查找和归并排序算法
2017/04/14 Python
python双向链表原理与实现方法详解
2019/12/03 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
2014年小学国庆节活动方案
2014/09/16 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
Mysql数据库group by原理详解
2022/07/07 MySQL