我有一些主幹和路由問題。骨幹路由和#
下面的代碼:
//routing
var AppRouter = Backbone.Router.extend({
routes: {
"":"home",
"example": "example",
"example/:data": "example_data"
},
home: function(){
alert('home');
},
example: function(){
alert('example');
},
example_data: function(data){
alert('example '+data);
}
});
var app_router = new AppRouter();
//Backbone.history.start({pushState: true});
Backbone.history.start();
現在,如果我去根網址:
file:///Users/my_user/workspace/project/index.html
我可以看到警報 '家'。 如果我的網址更改爲
file:///Users/my_user/workspace/project/index.html#example
我可以看到警報「示例」,如果我的網址更改爲:
file:///Users/my_user/workspace/project/index.html#example/something
我可以看到警報「例如什麼」。
現在我有兩個問題:第一個是我真的很感謝刪除'#'符號並使用'/'代替。第二個問題是,如果我分解這一行代碼:
//Backbone.history.start({pushState: true});
警報不再工作了。我該如何解決這個問題?
下面是該項目的全碼:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>App</title>
</head>
<body>
<div id='test-routing'><a href='#example'>example</a></div>
<div id='test-view'></div>
<script src="lib/jquery-2.1.3.min.js"></script>
<script src="lib/underscore-min.js"></script>
<script src="lib/backbone-min.js"></script>
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.26.min.js"></script>
<script>
//routing
var AppRouter = Backbone.Router.extend({
routes: {
"":"home",
"example": "example",
"example/:data": "example_data"
},
home: function(){
alert('home');
},
example: function(){
alert('example');
},
example_data: function(data){
alert('example '+data);
}
});
var app_router = new AppRouter();
Backbone.history.start({pushState: true});
//Backbone.history.start();
</script>
</body>
</html>
是的,我評論了另一行代碼!我不能做一個jsfiddle,但我已經用項目的代碼更新了第一個答案! – ste
我想我找到了解決問題的辦法,現在我會更新我的答案。 – rikudesu
謝謝,我添加了你給我的代碼,'#'的問題解決了,另一方面,如果我用我的項目上的鏈接/按鈕導航,我可以看到鏈接改變'/'(www .project.com - > www.project.com/resource),但如果我直接粘貼諸如www.project.com/resource之類的東西,則什麼也找不到。 – ste