2016-11-23 9 views
0

オプションの整数ルートパラメータを使用して単一の状態を定義しようとしています。ui-routerで入力されたオプションのルートパラメータを使用する

私は、これは、例えば、IDを持っているすべてのルートのために働いている

$stateProvider.state('configuration', { 
    stateUrl: '/configuration/{id:int}', 
    template: '<div></div>' 
}); 

私のアプリケーションでは、次の状態を定義しています/configuration/1ですが、IDなしのルートでは が動作しません。 。

I、最後にIDを伴うまたは伴わない経路作業を次に、以下のように、タイプ定義をドロップ私はstring IDなくnumberで終わる場合。

$stateProvider.state('configuration', { 
    stateUrl: '/configuration/:id', 
    template: '<div></div>' 
}); 

オプションの型指定されたルートパラメータを定義することはできますか?

答えて

1

を以下試してみてください。

$stateProvider.state('configuration', { 
    stateUrl: '/configuration/{id:int}', 
    params: { id: { value: null, squash: true } }, 
    template: '<div></div>' 
}); 
0

'?'を使用してパラメータをオプションにすることができます。

私はparamsオプションを使用して、この作業を取得するために管理

$stateProvider.state('configuration', { 
    stateUrl: '/configuration/:id?', 
    template: '<div></div>' 
}); 
+0

しかし、私は型定義を失うだろうし、それは文字列の権利になるだろうか? – Alex

+0

はい、あなたは定義を失います。文字列も受け入れます。 routeパラメータに中括弧 '{}'を使用するとき、パラメータをオプションまたは欲張りとして使用することはできません。 このリンクはあなたを助けるかもしれません - https://github.com/angular-ui/ui-router/wiki/URL-Routing –

+0

ありがとう、しかし、私はオプションの整数パラメータの後にいました。これを行う方法はありませんか? ui-routerドキュメントでは、 '{}'はパラメータを ':'と異なる方法で扱います。 – Alex