Ich verwende Sammy-Routing auf einer ASP.NET MVC-Webanwendung, basierend ursprünglich auf der Standard-MS-Vorlage für eine SPA-Webanwendung, die Knockout und Sammy verwendet, um Seitenladungen/Routing zu verwalten. Ich bin neu bei Sammy, also verstehe ich es nicht gut, aber meine Erwartung ist, dass die/# -Suchroute ausgeführt würde, selbst wenn es die erste Seitenladung ist, aber es scheint, als ob es nicht ist. Die Route "/" wird immer bei einer "kalten" Seitenladung ausgeführt.Sammy-Routing funktioniert nicht wie erwartet
Grundsätzlich, wenn ich die App im Debug-Modus ausführen, funktioniert alles einwandfrei. Die # Home- und # Search-Routen funktionieren wie erwartet. Aber wenn, beim Debuggen, fügen ich diese URL in einem neuen Tab oder Browser-Sitzung:
http://pr-dev.dav1.net.fmcti.com/#search/101-4155
Dann, anstatt die/# Suchroute Code ausgeführt wird, scheint es, dass die „/“ Route Code ausgeführt wird . Führt diese Route immer bei einer neuen Sitzung aus, unabhängig davon, ob der Begriff #search in der URL vorhanden ist? Hier ist das Typoskript Code in meiner Homepage Ansichtsmodell, wo das SPA-Routing konfiguriert ist:
// configure SPA routing
Sammy(function() {
this.get("#home",() => {
if (app.view() !== self) {
// load page view model
app.view(self);
}
// clear out any search results
self.hideResults();
self.queryTree.refreshDataSource([]);
self.partSummary(new SR.PR.Query.QueryResult());
self.searchBox.setValue("");
});
this.get("/", function() {
this.app.runRoute("get", "#home");
});
this.get("#search/:pn", function() {
if (app.view() !== self) {
app.view(self);
}
const pn = this.params["pn"];
if (pn) {
SR.PR.Query.doPartSearch(self, pn.toUpperCase());
}
});
});
Vielen Dank im Voraus für Ihre Hilfe!
Vielen Dank für Ihre schnellen Vorschläge. Dies war nicht mein Problem, wie sich herausstellte, aber es half mir sicherlich, es besser zu verstehen. Ich werde meine endgültige Lösung separat veröffentlichen. –