Javascript 基于refesh的主干视图渲染

Javascript 基于refesh的主干视图渲染,javascript,jquery,backbone.js,backbone-views,backbone-routing,Javascript,Jquery,Backbone.js,Backbone Views,Backbone Routing,我对主干路线和视图有问题。当我点击链接时,视图被正确呈现,url也是正确的,但问题是每当我刷新页面时,url仍然是相同的,但视图返回到索引视图,在索引视图中,它应该呈现该路由下的视图,这导致事件未被正确处理 这是路由器: var MainRouter = Backbone.Router.extend({ initialize: function() { // homeView.render(); }, routes: { '': 'index

我对主干路线和视图有问题。当我点击链接时,视图被正确呈现,url也是正确的,但问题是每当我刷新页面时,url仍然是相同的,但视图返回到索引视图,在索引视图中,它应该呈现该路由下的视图,这导致事件未被正确处理

这是路由器:

var MainRouter = Backbone.Router.extend({
    initialize: function() {
//        homeView.render();
    },
    routes: {
        '': 'index', 
        'register': 'register'
    }
});

var mainRouter = new MainRouter();

router.on('route:index', function() {
    if (htmlObj.hasClass('connected')) {
        if (htmlObj.hasClass('present')) {
            profileView.render();
        }
        homeView.render();
    }
});

router.on('route:register', function() {
    signUpView.render();
});
主干、历史、起点

然后在视图事件中,我将触发器设置为true

Backbone.history.navigate'/signup',{trigger:true}

因此,它将运行该特定路由的功能。 我也尝试过使用pushState和root,但在刷新时也有同样的问题,但这次它说找不到页面

谢谢

请尝试以下代码:

var MainRouter  = Backbone.Router.extend({
    routes: {
        "": "index",
        "register": "register",
    },
    index: function () {
        if (htmlObj.hasClass('connected')) {
            if (htmlObj.hasClass('present')) {
                profileView.render();
            }
            homeView.render();
        }
    },

    register: function() {
        signUpView.render();
    }

});

$(document).ready(function () {
    var r = new MainRouter();
    Backbone.history.start();
    r.navigate(window.location.hash.replace('#',''),{trigger: true});
})

我已经尝试过实现这个,但它并不能解决问题try add call。在正常情况下,它将发射指定路线两次。尝试放置一些断点来调试代码。检查启动时触发的函数。可能存在要呈现的html标记。