我最近開始使用knockout.js和sammy.js來更新我的應用程序。但是我遇到了一些問題。阻止sammy.js竊取'真實鏈接'
我在頁面上有一些有效的鏈接 - 用戶應該實際導航到該位置,而不是模仿導航行爲使用sammy.js
。我只希望基於散列的鏈接由sammy.js路由,但它也攔截不包含任何散列的鏈接。例如,它攔截<a href="/logout">logout</a>
。
,做路由JS部分是:
Sammy(function() {
this.get('#/', function() {
...
});
this.get('#:id', function() {
...
});
this.get('', function() { this.app.runRoute('get', '#/') });
}).run();
我覺得this.get('' ..)
部分是調用此行爲的罪魁禍首 - 我是從knockout.js教程,它說,該行是必要的,以允許用戶從其他來源到正確瀏覽我的網頁。由knockout.js代碼運行的頁面是/w/
。我希望sammy.js只能在/w/
中工作,或者至少允許用戶導航到/logout
。我怎樣才能做到這一點?
你有沒有解決過這個問題?如果不是,我肯定會推薦在[jsfiddle](http://jsfiddle.net/)上重現這一點。 – edhedges
@hedhedges我認爲這是關於定義您的Web應用程序的入口點。我的應用程序是傳統的多頁面應用程序,它具有從python web服務器生成的HTML(並在一定程度上利用sammy.js和hash + ajax)。所以,我的解決方案是刪除'this.get('',...)'並把'location.href = <一些散列我想要這個頁面,這是從服務器生成'''。現在非哈希URL不被攔截。 – thkang
如果你已經解決了問題,你應該爲他人自己回答問題。 – edhedges