Jul*_*lik 8 backbone.js pushstate backbone-routing
我目前正在为我的SPA使用Backbone路由器.它有点工作,但我有一些小问题:
问题是-我想要么有pushState
导航或没有,意思-应用程序状态被执行(当我通过"初始" URL路由器或我触发通过JS的路线),但地址栏不会改变.我不希望IE9的hashChange回退.如果IE9没有获得后退按钮和更改的地址栏,它仍将正常工作,但仍保留应用程序中的导航状态.然后,我可以向用户显示他们可以加入书签的URL,服务器将路由该页面,并且应用程序状态将根据初始URL进行引导.在应用内导航期间,IE中的地址栏不会改变,这是我愿意接受的妥协.
navigate(url, {trigger: true})
我遇到的另一个问题是我用于拦截的HREF,后退按钮不起作用(什么都不做).但我真的需要在前进/后退导航中更改应用状态,即使它为特定URL重建 - 我宁愿重建状态.
对于我可以使用的路由器,我有哪些选择?就像我说的,我不希望有hashbang回退(意思是 - 我只想在应用程序中使用一种表示URL的方式).
我该怎么用?Director.js?History.js?似乎有相当多的路由器/历史库,但哪一个最接近我正在寻找的?
假设您有 Modernizr 扫描 HTML5 历史记录支持,如果我理解得很好,在您的主布局 js 文件中添加为事件不是一个快速的解决方案
'click a' : "navigate"
Run Code Online (Sandbox Code Playgroud)
并将功能导航到此布局,如下所示
navigate : function(e){
if(!Modernizr.history) document.location.href = $(e.currentTarget).attr("href");
},
Run Code Online (Sandbox Code Playgroud)
为了优化,您当然可以仅在不支持历史记录的情况下进行绑定,不要忘记在布局中包含“modernizr”。希望这对您来说是一个有趣的答案。
归档时间: |
|
查看次数: |
875 次 |
最近记录: |