关于angularjs的$state.go()与ui-sref传参问题

  上次转发过关于angularjs回退的文章,回退用到的还是js的回退功能,直接用history.back();实现功能,当时顺便提了下$state.go()有关路由跳转。 那这回就全面解析下$state.go();的功能.

   下面是简写的步骤:

  1.在目标页面规定接受的参数:$stateProvider.state('page2', {params: {'data': null}});

  2.传参:$state.go('page2', {data: 'aaa'});

  3.目标页面接受参数:控制器注入$stateParams之后可以通过$stateParams.data来获取‘aaa’;

   

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

  ui-sref 一般使用在 <a>...</a>;

  <a ui-sref="message-list">消息中心</a>

  $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:

  

  $state.go:

  

 

  接收参数,

  在目标页面的controller里注入$stateParams,然后 "$stateParams.参数名" 获取

  

 

文章转自:http://www.cnblogs.com/jager/p/5293225.html

转载于:https://www.cnblogs.com/Uncle-Maize/p/6250189.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值