Ich begann vor kurzem mit knockout.js und sammy.js meine App zu modernisieren. Allerdings bin ich mit einigen Problemen stecken geblieben.Block sammy.js von 'echten Links' zu stehlen
Ich habe einige gültige Links auf der Seite - Benutzer sollten tatsächlich zu diesem Ort navigieren, anstatt Navigationsverhalten mit sammy.js
zu imitieren. Ich möchte, dass nur Hash-basierte Links von sammy.js geroutet werden, aber es fängt auch Links ab, die keine Hashes enthalten.
zum Beispiel fängt es <a href="/logout">logout</a>
ab.
die js Teil, das Routing hat folgende Funktionen:
Sammy(function() {
this.get('#/', function() {
...
});
this.get('#:id', function() {
...
});
this.get('', function() { this.app.runRoute('get', '#/') });
}).run();
Ich denke this.get('' ..)
Teil der Schuld daran ist, dass dieses Verhalten ruft - ich habe es aus knockout.js Tutorial bekam, die besagt, dass die Leitung notwendig ist, um Benutzern zu ermöglichen von anderen Ursprüngen, um meine Webseite richtig zu durchsuchen. Die Seite, die von knockout.js Code ausgeführt wird, ist /w/
. Ich will sammy.js nur in /w/
arbeiten oder zumindest Benutzern ermöglichen, zu /logout
zu navigieren. Wie kann ich das erreichen?
Haben Sie das jemals gelöst? Wenn nicht, würde ich definitiv empfehlen, dies auf [jsfiddle] (http://jsfiddle.net/) zu reproduzieren. – edhedges
@edhedges Ich denke, es geht darum, Einstiegspunkte für deine Web-App zu definieren. Meine App ist eine traditionelle mehrseitige App, die HTMLs von einem Python-Webserver generiert (und sammy.js und hash + ajax zu einem gewissen Grad nutzt). Also, meine Lösung zu diesem war entfernen 'this.get ('', ...)' und put 'location.href ='. Jetzt werden Nicht-Hash-URLs nicht abgefangen. –
thkang
Sie sollten die Frage selbst für andere willen beantworten, wenn Sie es gelöst haben. – edhedges