Niedawno zacząłem używać knockout.js i sammy.js do modernizacji mojej aplikacji. Jednak utknąłem z pewnymi problemami.zablokuj sammy.js przed kradzieżą "prawdziwych linków"
Mam kilka ważnych linków na stronie - użytkownicy powinni rzeczywiście nawigować do tej lokalizacji, zamiast naśladować zachowania nawigacyjne za pomocą sammy.js
. Chcę, aby tylko linki oparte na hashach były kierowane przez sammy.js, ale przechwytują też linki, które nie zawierają żadnych skrótów.
na przykład przechwytuje <a href="/logout">logout</a>
.
część js że robi routing jest:
Sammy(function() {
this.get('#/', function() {
...
});
this.get('#:id', function() {
...
});
this.get('', function() { this.app.runRoute('get', '#/') });
}).run();
myślę this.get('' ..)
część jest winowajcą, że wywołuje to zachowanie - Dostałem go od samouczka knockout.js, który mówi, że jest to konieczne, aby umożliwić użytkownikom z innych źródeł, aby prawidłowo przeglądać moją stronę. stroną uruchamianą przez kod knockout.js jest /w/
. Chcę, aby sammy.js działał tylko w /w/
lub przynajmniej pozwolił użytkownikom na nawigację do /logout
. Jak mogę to zrobić?
Czy kiedykolwiek rozwiązałeś to? Jeśli nie, zdecydowanie poleciłbym odtworzyć to na [jsfiddle] (http://jsfiddle.net/). – edhedges
@edhedges Uważam, że chodzi o definiowanie punktów początkowych aplikacji internetowej. moja aplikacja to tradycyjna wielostronicowa aplikacja, która ma HTML-y wygenerowane z serwera Pythona (i do pewnego stopnia wykorzystuje sammy.js i hash + ajax). więc, moim rozwiązaniem było usunięcie 'this.get ('', ...)' i wstawienie 'location.href ='. teraz nie-hashowe adresy URL nie są przechwytywane. –
thkang
Powinieneś odpowiedzieć sobie na pytanie dla innych, jeśli je rozwiązałeś. – edhedges