thk*_*ang 7 javascript sammy.js knockout.js
我最近开始使用knockout.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();
Run Code Online (Sandbox Code Playgroud)
我认为this.get('' .. )部分是调用此行为的罪魁祸首 - 我是从knockout.js教程得到的,该教程说该行是必要的,以允许其他来源的用户正确浏览我的网页.knockout.js代码运行的页面是/w/.我希望sammy.js只能在/w/或者工作,至少允许用户导航到/logout.我怎么能做到这一点?
rob*_*lep 10
我使用Sammy已经有一段时间,但我认为您可以使用以下disable_push_state设置关闭此行为:
Sammy(function() {
this.disable_push_state = true;
...
});
Run Code Online (Sandbox Code Playgroud)
您可以使用“周围”功能。有很多选择。我建议这样做,
假设有一些网址。点击该 url 后,您希望将服务器与该页面进行通信。例如,注销网址如“/logout”。
现在将该网址设置如下
"/logout?reload=true"
Run Code Online (Sandbox Code Playgroud)
这样,你就可以按照Sammy的代码进行控制
Sammy(function(){
this.around(function(callback) {
if(this.params.reload === 'true')
location.replace(this.path);
else
callback();
});
// Your routers are going to be here
}).run()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1996 次 |
| 最近记录: |