ui-sref、$state.go 的区别

本文深入探讨了AngularJS中ui-sref与$state.go的区别与联系,揭示了ui-sref如何最终调用$state.go实现状态切换。同时,详细介绍了如何通过这两种方式在控制器和模板中传递参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 ui-sref、$state.go 的区别

ui-sref 一般使用在 …;

消息中心
$state.go(‘someState’)一般使用在 controller里面;

.controller(‘firstCtrl’, function($scope, $state) {
$state.go(‘login’);
});
这两个本质上是一样的东西,我们看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);
  });

ui-sref最后调用的还是$state.go()方法

2 如何传递参数

首先,要在目标页面定义接受的参数:
在这里插入图片描述
传参,
在这里插入图片描述
ui-sref=“reg” 与state里的状态名对应

**

$state.go跳转中 传递对象参数

1.传数据

//以对象为参数传递
var petObj = JSON.stringify($scope.pet);
$state.go(‘petDetails’,{‘petObj’:petObj});

2.在app.js中定义参数名

.state(‘petDetails’, { //宠物详情
url:’/petDetails’,
params:{‘petObj’:null},
cache:‘false’,
templateUrl: ‘templates/petDetails.html’,
controller: ‘PetDetailsCtrl’
})

3.接收

scope.pet=JSON.parse(scope.pet = JSON.parse(scope.pet=JSON.parse(stateParams.petObj);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值