1

状況

同じパラメーターを使用する 2 つのサブ状態があります。

$stateProvider
    .state('rootState', {
        url: '/{ID}',
        templateUrl: 'template1.html',
        controller: 'controller1',
        reloadOnSearch: false
    })
    .state('rootState.subStateA', {
        url: '/subStateA',
        parent: 'rootState',
        templateUrl: 'template2.html',
        controller: 'controller2',
        reloadOnSearch: false
    })
    .state('rootState.subStateB', {
        url: '/subStateB/',
        parent: 'rootState',
        templateUrl: 'template3.html',
        controller: 'controller3',
        reloadOnSearch: false
    })

現在、2 つのリンクがあります。

<a href ui-sref="rootState.subStateA">State A</a>
<a href ui-sref="rootState.subStateB">State B</a>

問題

状態 A から状態 B に移行すると、パラメーター ID が null になります。

質問

ある状態から別の状態に移行する間、ID パラメータを保持するにはどうすればよいですか?

4

1 に答える 1

1

1 つの方法として、$stateParams を $rootScope に注入し、どこにでも配置することができます。

.run(['$rootScope', '$state', '$stateParams',
  function ($rootScope, $state, $stateParams) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
}])

後でこのリンクを使用できます。

<a href ui-sref="rootState.subStateA({ID:$stateParams.ID})">State A</a>
<a href ui-sref="rootState.subStateB({ID:$stateParams.ID})">State B</a>

または多分

<a href ui-sref="rootState.subStateA($stateParams})">State A</a>
<a href ui-sref="rootState.subStateB($stateParams})">State B</a>
于 2015-03-11T10:49:35.803 に答える