未从url激发事件上的主干路由器

Backbone router.on event not firing from url

本文关键字:路由器 事件 url 未从      更新时间:2024-03-23

当用户输入URL(anything.com)/questions/new.时,我正试图触发主干事件

我的路由器看起来如下:

define(['backbone'],function(BackBone){
    var routeExtend = Backbone.Router.extend({
            routes: {
              "": "home",   
              "questions/new": 'newQuestion'
            },
        });

    var initialize = function(){
        var Router = new routeExtend();         
        Router.on('route:newQuestion', function() {             
            console.log('new question');
        });
        BackBone.history.start();           
        return Router;
    }

    return {initialize:initialize};
});

如果我在应用程序中调用router.navigation,事件会很好地启动。

但是,如果"questions/new"是web浏览器的初始URL,我希望能够启动"on"事件。有办法做到这一点吗?

您可以在事件上定义函数而不是router

var routeExtend = Backbone.Router.extend({
     routes: {
         "": "home",
         "questions/new": 'newQuestion'
     },
     newQuestion: function() {
         console.log('new question');
     }
 });