如何使用Angular ui-router将范围变量数据从一个状态传递到另一个状态?

时间:2017-03-25 08:52:40

标签: angularjs angular-ui-router

我有以下两种状态:

  .config(function($stateProvider, $urlRouterProvider) {
      $stateProvider
        .state('my.list', {
          url: '/myitem',
          templateUrl: 'templates/my-item-list.html',
          controller: 'myController'
        })

        .state('my.detail', {
          url: '/detail',
          templateUrl: 'templates/item-detail.html',
          controller: 'myController'
        })

my-item-list.html我使用ng-repeat列出可点击的项目。

点击状态更改为my.detail我要显示所选/点击项目的详细信息。

如何将点击数据从一个州传递到另一个州?最好的方法是什么?没有在URL中显示参数?

1 个答案:

答案 0 :(得分:1)

通过点击链接从一个州导航到另​​一个州时的最佳方法是使用ui-sref,您可以将params与其一起传递:

<a ... ui-sref="my.detail({selected: 'something'})" ...>...</a>

为了完成这项工作,您需要selected成为该州params的一部分。像这样:

    .state('my.detail', {
      url: '/detail',
      params: {selected: null},
      templateUrl: 'templates/item-detail.html',
      controller: 'myController'
    })

现在,您可以使用myController$stateParams.selected中使用它。