为了账号安全,请及时绑定邮箱和手机立即绑定

如何在ui-路由器中使用ui-SREF将参数传递给控制器

如何在ui-路由器中使用ui-SREF将参数传递给控制器

如何在ui-路由器中使用ui-SREF将参数传递给控制器我需要传递和接收两个参数到我想要转换到使用的状态。ui-sref用户界面路由器。类似于使用下面的链接将状态转换为home带着foo和bar参数:<a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home state with foo and bar parameters </a>接收foo和bar控制器中的值:app.controller('SomeController', function($scope, $stateParam) {   //..   var foo = $stateParam.foo; //getting fooVal   var bar = $stateParam.bar; //getting barVal   //..});我得到undefined为$stateParam在控制器里。有人能帮我弄清楚怎么做吗?编辑:.state('home', {   url: '/',   views: {     '': {       templateUrl: 'home.html',       controller: 'MainRootCtrl'     },     'A@home': {       templateUrl: 'a.html',       controller: 'MainCtrl'     },     'B@home': {       templateUrl: 'b.html',       controller: 'SomeController'     }   }});
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

您不一定需要在URL中有参数。

例如:

$stateProvider.state('home', {
  url: '/',
  views: {
    '': {
      templateUrl: 'home.html',
      controller: 'MainRootCtrl'

    },
  },
  params: {
    foo: null,
    bar: null
  }})

您可以使用以下任何一种方法将参数发送到状态:

$state.go('home', {foo: true, bar: 1});// or<a ui-sref="home({foo: true, bar: 1})">Go!</a>

当然,如果您在home状态,您将松散状态参数,因为它们不在任何地方存储。

对此行为的完整描述记录在文档中。这里,在params中的行state(name, stateConfig)部分。


查看完整回答
反对 回复 2019-07-02
?
森林海

TA贡献2011条经验 获得超2个赞

你只是拼错了$stateParam,应该是$stateParams(加上s)。这就是为什么你没有定义;)


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 732 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信