Backbone router.on事件不从url触发

时间:2015-02-23 17:21:37

标签: javascript backbone.js router

当用户输入网址(whatever.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.navigate,则事件会正常。

但是,如果“questions / new”是给予Web浏览器的初始URL,我希望能够触发“on”事件。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

你可以定义函数而不是router.on事件

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