$routeProvide
のURLを入力するとどうすればいいですか?www.example.com/2010/10
??URLの角の経路条件2010/10
.when('/{year:[0-9]+/{month:[0-9]+', {
templateUrl: WPAngular.partials + 'archive.html',
controller: 'ByYear'
})
が、その動作していないような
私が書かれている状態。
$routeProvide
のURLを入力するとどうすればいいですか?www.example.com/2010/10
??URLの角の経路条件2010/10
.when('/{year:[0-9]+/{month:[0-9]+', {
templateUrl: WPAngular.partials + 'archive.html',
controller: 'ByYear'
})
が、その動作していないような
私が書かれている状態。
私はルートプロバイダーがそこで正規表現をサポートしているとは思っていませんが、もしあなたが一致しなかった場合は{
です。一致させることができるさまざまな項目については、https://docs.angularjs.org/api/ngRoute/provider/ $ routeProviderを参照してください。
理由だけではない:
.when('/:year/:month', {
templateUrl: WPAngular.partials + 'archive.html',
controller: 'ByYear'
})
、その後は他の場所で数値を検証します。
paramsが数値かどうかを検証して確認するにはどうすればいいですか? –
コントローラや '.when'の' resolve'ブロックでそれらを検証することができますが、@ vjarystaが示唆し、ui-routerを使うように切り替えるのが最善の方法です。 – Duncan
$routeProvider
は正規表現をサポートしていません。
ui-routerを使用することをお勧めします。$routeProvider
には多くの機能があります。
あなたのconfには、そのようになります。
$stateProvider
.state('by-year', {
url: '/{year:[0-9]+}/{month:[0-9]+}',
templateUrl: WPAngular.partials + 'archive.html',
controller: 'ByYear'
});
は、うーん、それは閉じ中括弧 'することができ '/ {年:[0-9] +}/{月:[0-9] +}' 'また、正規表現のパラメータをサポートしていないngRouteを使用していますが、' ui-router 'は行います。 –
ルーティングでregexpsを使用するときは注意してください。悪い驚きを持つことができます... – Mistalis
@Mistalisは正しいですが、 ''/ archives /:year /:month' 'のような他のルートとの競合を防ぐコンテキストを作成することを検討してください。 –