您的位置:首页 > 其它

backbone使用router首次进入页面,点击锚点页面被刷新

2015-09-22 18:00 423 查看
代码如下

<!DOCTYPE html>
<html lang="en">
<head>
<base href="http://localhost:81/backbone/"></base>
<title></title>
</head>

<body>
<a id="back" href='backbone-master/router.html#dispatch/1234'>
<button class="btn btn-xs btn-light bigger">
<i class="icon-arrow-left"></i>dispatch
</button>
</a>

<a id="back" href='backbone-master/router.html#index'>
<button class="btn btn-xs btn-light bigger">
<i class="icon-arrow-left"></i>index
</button>
</a>

<a id="back" href='backbone-master/router.html#logout'>
<button class="btn btn-xs btn-light bigger">
<i class="icon-arrow-left"></i>logout
</button>
</a>
</body>
<script src="backbone-master/test/vendor/jquery.js"></script>
<script src="backbone-master/test/vendor/underscore.js"></script>
<script src="backbone-master/backbone.js"></script>
<script type="text/javascript">
var AppRouter = Backbone.Router.extend({
routes: {
'index':'index',
'dispatch/:inventoryId':'dispatch',
'logout':'logout'
},

logout: function(){
console.log("logout")
},

index: function(){
console.log("index")
},

dispatch: function(inventoryId){
console.log("dispatch inventoryId:"+ inventoryId)
}
})

window.appRouter = new AppRouter('body');
Backbone.history.start();
</script>

</html>


如果进入这个页面的url地址是带参数的,如:http://localhost:81/backbone/backbone-master/router.html?a=1,和锚点中的不一致,所以导致刷新

使用springmvc的话,解决办法:

<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"+request.getServerName() + ":" + request.getServerPort() + path + "/";

String forwardRequestUri = request.getAttribute("javax.servlet.forward.request_uri").toString() + (request.getQueryString() == null? "": "?" + request.getQueryString());
%>

<a id="back" href='<%=forwardRequestUri%>#index'>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: