猿问

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

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

我需要传递和接收两个参数到我想要转换到使用的状态。ui-sref用户界面路由器。

类似于使用下面的链接将状态转换为home带着foobar参数:

<a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home state with foo and bar parameters </a>

接收foobar控制器中的值:

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'
    }
  }});


不负相思意
浏览 745回答 3
3回答

月关宝盒

您不一定需要在URL中有参数。例如:$stateProvider.state('home',&nbsp;{ &nbsp;&nbsp;url:&nbsp;'/', &nbsp;&nbsp;views:&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;'':&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;templateUrl:&nbsp;'home.html', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;controller:&nbsp;'MainRootCtrl' &nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;}, &nbsp;&nbsp;params:&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;foo:&nbsp;null, &nbsp;&nbsp;&nbsp;&nbsp;bar:&nbsp;null &nbsp;&nbsp;}})您可以使用以下任何一种方法将参数发送到状态:$state.go('home',&nbsp;{foo:&nbsp;true,&nbsp;bar:&nbsp;1});//&nbsp;or<a&nbsp;ui-sref="home({foo:&nbsp;true,&nbsp;bar:&nbsp;1})">Go!</a>当然,如果您在home状态,您将松散状态参数,因为它们不在任何地方存储。对此行为的完整描述记录在文档中。这里,在params中的行state(name, stateConfig)部分。

森林海

你只是拼错了$stateParam,应该是$stateParams(加上s)。这就是为什么你没有定义;)
随时随地看视频慕课网APP
我要回答