2016-10-03 6 views
0

抽象的なapp状態で定義されている現在のサイト言語を表すルートパラメータがあります。今の

angular.module("app", ["ui.router"]).config(["$stateProvider", 
    function($stateProvider) { 
    $stateProvider 
     .state('main', { 
     url: '/:lng', 
     abstract: true, 
     template: '<div ui-view></div>' 
     }) 
     .state('main.index', { 
     url: '/', 
     template: '<span>Index</span>' 
     }) 
     .state('main.gallery', { 
     url: '/gallery', 
     template: '<span>Gallery</span>', 

     }) 
    } 
]); 

$state.goを呼び出すたびに、私はlngの現在値がen

であっても

$state.go('main.index', { lng: 'en' });

のように、ルートのparamリストにlngプロパティを追加する必要がありますlngを明示的に変更する場合を除いて、以前の状態と同じように変更する必要はありませんかリスト?

答えて

0

あなたはあなたの状態の定義でのLNGのparamにデフォルト値を追加することができます。

.state('main', { 
    url: '/:lng', 
    abstract: true, 
    template: '<div ui-view></div>' 
    params: { 
     lng: 'en' 
    } 
    }) 

より詳細には、答えをhere

+0

感謝を見つけることができます。しかし、私は以前の状態のparam値をデフォルトのものを使用する代わりに保持したい。 –

+0

ああ、私は読み間違えたことをお詫び申し上げます。 $ stateのラッパーサービスを作るだけでなく、paramsオブジェクトを受け入れるメソッドを作成し、渡したパラメータで$ state.goを呼び出し、残っている状態の$ stateParamsから省略されたものを記入するのはなぜですか? – kpup

関連する問題