Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干路由器.on事件未从url触发_Javascript_Backbone.js_Router - Fatal编程技术网

Javascript 主干路由器.on事件未从url触发

Javascript 主干路由器.on事件未从url触发,javascript,backbone.js,router,Javascript,Backbone.js,Router,当用户输入URL(whatever.com)/questions/new时,我试图触发主干事件 我的路由器如下所示: define(['backbone'],function(BackBone){ var routeExtend = Backbone.Router.extend({ routes: { "": "home", "questions/new": 'newQuestion'

当用户输入URL(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”事件。有没有办法做到这一点

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

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

您正在传入主干网,但正在扩展主干网。第3行的路由器,注意您的情况Hi Joe请详细说明。第1行,您正在将require调用的结果分配给变量主干网(CamelCase),然后您在第3行使用主干网,该主干网必须未定义或在别处全局定义,但这和你在下面使用的主干不同。谢谢你的提醒。修正了拼写问题。但这并不能解决路由问题,你知道我所问的是否可行吗?