2

3つのサブページを持つ1つのシングルページアプリケーションがあります。

URL構造は次のとおりです。

/page  (sub-page-0)

/page#sub-page-1

/page#sub-page-2

ビューモデルは次のとおりです。

function ViewModel(activePage){
   var self=this;

   self.activePage=ko.observable(activePage);
   self.changePage=function (newPage){
       self.activePage(newPage);
       //change url
   });
}

ユーザーがurlと入力すると、JavaScriptで#部分を取得し、このパラメーターを使用してViewModelを構築します。

ユーザーがページ内のリンクをクリックすると、URLを変更してそのサブページをロードしたいと思います。

4

2 に答える 2

5

スタックオーバーフローの質問からの解決策の1つを使用できます:JavaScriptでクエリ文字列値を取得するにはどうすればよいですか?

ただし、クライアント側のルーティングライブラリを検討することを強くお勧めします。ノックアウトホームページにはsammyjsを使用したがありますが、他にも多くの興味深いソリューションがあります(backbonejsとknockoutjsを組み合わせたノックバックを含む

于 2012-08-09T13:34:24.053 に答える
3

ノックアウト自体はナビゲーションをサポートしていません。ただし、サードパーティのフレームワークを使用できます。http://learn.knockoutjs.com/にノックアウトの「シングルページアプリケーション」という名前のチュートリアルがあり、sammy.jsでそれを行う方法を示しています。

于 2012-08-09T13:32:14.013 に答える