Recentemente ho iniziato a utilizzare knockout.js e sammy.js per modernizzare la mia app. Tuttavia sono rimasto bloccato con alcuni problemi.blocca sammy.js dal furto di "link reali"
Ho alcuni collegamenti validi sulla pagina: gli utenti dovrebbero effettivamente navigare verso quella posizione, invece di imitare i comportamenti di navigazione usando sammy.js
. Voglio che solo i collegamenti basati su hash vengano instradati da sammy.js, ma intercettano anche collegamenti che non contengono alcun hash.
ad esempio, intercetta <a href="/logout">logout</a>
.
la parte che fa js routing è:
Sammy(function() {
this.get('#/', function() {
...
});
this.get('#:id', function() {
...
});
this.get('', function() { this.app.runRoute('get', '#/') });
}).run();
Penso this.get('' ..)
parte è il colpevole che richiama questo comportamento - l'ho presa da knockout.js tutorial, che dice che la linea è necessaria per consentire agli utenti da altre origini per navigare correttamente nella mia pagina web. la pagina eseguita dal codice di knockout.js è /w/
. Voglio che sammy.js funzioni solo su /w/
o, almeno, permetta agli utenti di navigare su /logout
. Come posso realizzare questo?
Hai mai risolto questo? Altrimenti consiglio di riprodurlo su [jsfiddle] (http://jsfiddle.net/). – edhedges
@edhedges Penso che si tratti di definire i punti di ingresso della tua app web. la mia app è l'app tradizionale multi-pagina che ha generato HTML da un server web python (e sfrutta sammy.js e hash + ajax in una certa misura). quindi, la mia soluzione era rimuovere 'this.get ('', ...)' e inserire 'location.href ='. ora gli URL non hash non vengono intercettati. –
thkang
Dovresti rispondere tu stesso alla domanda per il bene altrui se lo hai risolto. – edhedges