通常、シングルページアプリ(スパ)では、サイドナビゲーションメニューがある単一ページがあります。そのメニューには、複数のアンカータグがあります。
これらのアンカータグのURLはangular / react / sammy jsルーターによって処理され、メインdivはコントローラーから返されたhtmlに基づいて更新されます。
とても簡単ですよね?
しかし、ユーザーがブラウザのアドレスバーを介してアンカータグのURLに直接アクセスするシナリオを想像してみてください。次に、返されたhtmlセグメントのみがページ全体にロードされます。
このような状況に対処する方法はありますか。つまり、ユーザーがURLに直接アクセスするときはいつでも、適切にアドレス指定されるということですか?
編集:問題の説明についてはあまり明確ではないかもしれません。少し詳しく説明させてください。
私の質問は、これら2つがうまく機能するように、いくつかの設計アプローチを実装できるかということです。
より良い角度のために行くui-router
代わりにsammy js router
、もちろん、私はそれについて知らないうち。しかし中にangular-ui-router
は、我々は使用して状態とURLを定義する$stateProvider
のui-router
。ユーザーがブラウザに直接URLを入力した場合でも、状態で定義されたURLが一致した場合にのみ正しくアドレス指定されます。
https://github.com/angular-ui/ui-router/tree/legacy詳細については、こちらをご覧ください。
これが例です、
$stateProvider.state('',{
url: '/',
tempate: 'path/to/.html',
controller: 'controllerToHandle'
})
.state('home', {
url: '/home',
template: 'path/to/home.html',
controller: 'HmeCtrl'
})
.state('home.list',{ //defines child states with dot
url: '/list', //shows url as home/list because it is a child state
template: 'path/to/list.html'
})
$urlRouterProvider.otherwise('/')
一致するパスがない場合に使用します。同様に、ユーザーはからhome
をトラバースできます。list
たとえば、www.my-app.com
ホスト名です。彼がwww.my-app.com/home/list
URL/home/list
一致として入力した場合、彼はhome/list
ページに移動し、間違ったURLを入力した場合home
、otherwise
メソッドのためにページに移動します。
react / sammyルーターにこのようなものがある場合は、より良い解決策のためにそれを行ってください
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加