我在一個ASP.NET MVC web應用上使用Sammy路由,最初基於SPA web應用的標準MS模板,該應用使用Knockout和Sammy來管理頁面加載/路由。我是Sammy的新手,所以我不太瞭解它,但是我的期望是/#搜索路徑將被執行,即使它是第一個頁面加載,但它看起來好像不是。 「/」路由始終在「冷」頁面加載中執行。Sammy路由不能按預期工作
基本上,如果我在調試模式下運行應用程序,所有的作品都很好。 #home和#search路線按預期工作。但是,如果在調試時,我這個URL粘貼到一個新的選項卡或瀏覽器會話:
http://pr-dev.dav1.net.fmcti.com/#search/101-4155
然後,而非/#搜索路徑代碼執行時,它出現了「/」路線代碼執行。無論網址中是否存在#搜索字詞,此路由是否始終在新會話中執行?這裏是我的主頁視圖模型的打字稿代碼在SPA路由配置:
// 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());
}
});
});
預先感謝您的幫助!
感謝您的及時建議。事實證明,這不是我的問題,但它確實幫助我更好地理解它。我將分開發布我的最終解決方案。 –