Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 两个主干网之间的差异。路由器定义_Javascript_Backbone.js - Fatal编程技术网

Javascript 两个主干网之间的差异。路由器定义

Javascript 两个主干网之间的差异。路由器定义,javascript,backbone.js,Javascript,Backbone.js,我想尝试使用backbone.js创建我的第一个javascript应用程序 我发现了奇怪的行为,不理解两段代码之间的区别 一个很好,第二个似乎不起作用 在主页和“测试”url上显示警报 这不起作用,但是主干。历史。汉勒看起来一模一样 var router = new Backbone.Router({ routes:{ "": 'index', "test": 'test' }, index: function(){ al

我想尝试使用backbone.js创建我的第一个javascript应用程序 我发现了奇怪的行为,不理解两段代码之间的区别 一个很好,第二个似乎不起作用

在主页和“测试”url上显示警报

这不起作用,但是主干。历史。汉勒看起来一模一样

var router = new Backbone.Router({
    routes:{
        "": 'index',
       "test": 'test'
    },
    index: function(){
         alert('index');
    },
    test: function(){
         alert('test');
    }    
});
Backbone.history.start();

两位代码之间的区别在于,在第一个代码中,您创建了一个名为
AppRouter
的新类,而在第二个代码中,您只是创建了一个普通的
主干.Router

我可能有点误解,但你似乎在说第一个例子有效,而第二个则无效

第二个示例不起作用的原因是主干.Router只接受
routes
hash作为其构造函数的参数。通过的
索引
测试
函数不会作为对象上的函数创建

如果你想把
路由
散列传递给构造函数,你仍然需要用实际的路由函数扩展主干路由器。例如:

var AppRouter = Backbone.Router.extend({
    index: function(){
        alert('index');
    },
    test: function(){
        alert('test');
    }    
});
var app = new AppRouter({ 
    routes:{
        "": 'index',
       "test": 'test'
    }});
Backbone.history.start();

两位代码之间的区别在于,在第一个代码中,您创建了一个名为
AppRouter
的新类,而在第二个代码中,您只是创建了一个普通的
主干.Router

我可能有点误解,但你似乎在说第一个例子有效,而第二个则无效

第二个示例不起作用的原因是主干.Router只接受
routes
hash作为其构造函数的参数。通过的
索引
测试
函数不会作为对象上的函数创建

如果你想把
路由
散列传递给构造函数,你仍然需要用实际的路由函数扩展主干路由器。例如:

var AppRouter = Backbone.Router.extend({
    index: function(){
        alert('index');
    },
    test: function(){
        alert('test');
    }    
});
var app = new AppRouter({ 
    routes:{
        "": 'index',
       "test": 'test'
    }});
Backbone.history.start();

我在《脊骨解剖》中看到了第二个例子。你能说说作者为什么使用它吗?我可以从中添加源代码there@kiwaa我不知道他们为什么会使用它,但是如果你看一下主干.Router构造函数代码(),你会发现它对传递给它的函数没有任何作用。也许如果你发布消息来源,我可以回答这个问题。其实没关系。谢谢你的帮助,我在《BackboneJS的剖析》中看到了第二个例子。你能说说作者为什么使用它吗?我可以从中添加源代码there@kiwaa我不知道他们为什么会使用它,但是如果你看一下主干.Router构造函数代码(),你会发现它对传递给它的函数没有任何作用。也许如果你发布消息来源,我可以回答这个问题。其实没关系。谢谢你的帮助