これは単純なはずですが、わかりません。UIルータの空のパラメータが間違ったルートにナビゲートされる
私は2つのルートがあります。
$stateProvider
.state('users', {
url: '/users',
views: {'@': {
templateUrl: 'templates/users.tpl.html',
controller: 'UsersCtrl as users'
}}
})
.state('users.edit', {
url: '/{userId}',
views: {'@': {
templateUrl: 'templates/editUser.tpl.html',
controller: 'EditUserCtrl as editUser'
}}
});
名前で、「ユーザー」の状態に移動するには、UI-SREFまたは$ state.goを使用する場合、これは正常に動作しますが、あなたはdomain.com/入力した場合をusers /をURLバーに入力すると、空白のuserIdパラメータを持つ編集状態になりますが、末尾のスラッシュの後には何もありません。
通常これは問題にはならないが、userIdを指定しないでeditUserルートを実行するとコンソールエラーが発生し、これを修正するのは苦労する。
これは簡単に修正できますか?
'/' /ユーザーに最初 'url'のいずれかを変更してみてください(最後のスラッシュを追加)や' /ユーザ/ {にuserId} '第2' url'を変更します。私は、これらのうちの1つが、URLパスの '/ users /'部分に基づいて他のものを混乱させていると思われます。 –
最初のユーザーはスラッシュなしで作業を停止し、2番目のルートに行くときは二重スラッシュを、2番目のルートに行くときは2番目のユーザーはurl/users/usersを作成します。 URLが "/ users"または "/ users /"の場合は親ルートに移動する必要がありますが、 "/ users/something"の場合は編集ページに移動する必要があります。 – jonhobbs