客户端路由.它是如何工作的
Client side routing. How does it work?
我需要一个客户端路由解决方案与chrome应用程序的工作。我已经研究了几个和crossroads.js似乎是一个很好的选择。当我把它包含在我的html文件,它似乎不工作;也就是说,如果我使用像
这样的代码crossroads.addRoute('/news/{id}', function(id){
alert(id);
});
crossroads.parse('/news/123');
,页面提示'123',但如果我在浏览器的url栏中输入'/news/321',它会执行浏览器的默认操作,而不是提示'321'。我做错了什么?(另外,我知道这个标题很宽泛,但我相信我在使用crossroads.js时遇到的困难比使用crossroads.js时遇到的困难更普遍。
也使用哈希(由同一作者)。
Crossroads页面上的文档告诉您需要使用Hasher(因为它将用于监视寡妇)。地址栏)。
所以你还需要使用Hasher,并初始化它,然后你可以将你的"Crossroads"路由添加到Hasher中,开始监控那些特定的路由。
//setup crossroads
crossroads.addRoute('foo');
crossroads.addRoute('lorem/ipsum');
crossroads.routed.add(console.log, console); //log all routes
//setup hasher
hasher.initialized.add(crossroads.parse, crossroads); //parse initial hash
hasher.changed.add(crossroads.parse, crossroads); //parse hash changes
hasher.init(); //start listening for history change
//update URL fragment generating new history record
hasher.setHash('lorem/ipsum');
http://millermedeiros.github.com/crossroads.js/命令parse
告诉crossroads查看字符串并根据它执行操作。
对于crossroads.parse('/news/123');
,它总是使用/news/123
由于您希望crossroads解析浏览器地址栏中的内容,因此您需要在parse方法中使用该值:
crossroads.parse(document.location.pathname);
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- 在JavaScript中的类中,push和concat的工作方式有何不同
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)