2012-08-09 3 views
1

J'ai une application d'une seule page avec trois sous-pages.Navigation fluide avec knockout.js

structure URL est:

/page (sub-page-0) 

/page#sub-page-1 

/page#sub-page-2 

Voir modèle est:

function ViewModel(activePage){ 
    var self=this; 

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

Lorsque l'utilisateur entrer URL Je veux # javascript part à la construction et ViewModel avec ce paramètre.

Lorsque l'utilisateur clique sur le lien dans la page, je veux changer l'URL et charger cette sous-page.

Répondre

4

Vous pouvez utiliser l'une des solutions de la question de débordement de la pile: How can I get query string values in JavaScript?

Cependant, je vous recommande fortement envisager une bibliothèque de routage côté client. La page d'accueil knockout a un example en utilisant sammyjs, mais il existe de nombreuses autres solutions intéressantes là-bas (y compris knockback, qui combine backbonejs et knockoutjs).

2

Knockout lui-même ne supporte pas la navigation. Mais vous pouvez utiliser des frameworks tiers. Il y a un tutoriel nommé "Single page applications" de knockout au http://learn.knockoutjs.com/ qui montre comment faire avec sammy.js.

Questions connexes