Backbone Router路由不使用href链接触发

时间:2015-12-30 02:27:11

标签: html backbone.js href backbone-routing

根问题: 单击超链接时,骨干路由不会触发。相反,我得到404,因为没有调用骨干路由,而是有服务器发送请求。

enter image description here

这是html(“testLink”)中的链接:

<script id="header1" type="text/template">
<table id="headerTable">
    <tr>
        <td id="headerCol1"><button id="playlistBtn"><div class="glyphicon glyphicon-music crimson"></div></button><span id="numberOfSongs" class="badge badge-notify crimson"></span></td>
        <td id="headerCol2"></td>
        <td id="headerCol3" align="right">
            <div id="dropDownMenu" class="dropdown" data-theme="b">
                <button id="menuButton" class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"><p><span id="currentUser" class="crimson"></span><span class="caret crimson"></span></p></button>
                <ul class="dropdown-menu dropdown-menu-right" data-theme="b">   
                  <li id="testBtn"><a href="testLink">Test Link</a></li>
                </ul>
            </div> 
        </td>
    </tr>
</table>

我尝试了很多变种,包括:

href =“#testLink”,导致没有网址更新,没有发生任何事情

href =“#/ testLink”,同上,没有发生任何事情

href =“/#/ testLink”,同上,没有发生任何事情

href =“/ testLink”,导致404向服务器发送请求

href =“testLink”,与上面相同,404发送请求到服务器(这是我的第一选择)

这是我的路由器代码:

var AppRouter = Backbone.Router.extend({

        routes: {
            "Profile":  "profilePage",
            "testLink": "test"
        },
        profilePage:function(){
            alert('You have navigated to the profile page');
        },
        test:function(){
            alert('testing this link');
        }
});
// Instantiate the router and start the history
var appRouter = new AppRouter();
Backbone.history.start();

我尝试过将pushState设置为true,并将root选项设置为'/'而不改变行为的变体。

0 个答案:

没有答案