Backbone.js路由器实现

时间:2013-01-17 19:24:55

标签: backbone.js backbone-routing

我是Backbone.js的新手,并没有完全理解某些类型的路由器实现之间的区别。

1。类型:

var Workspace = Backbone.Router.extend({
        routes:{
            '*filter': 'setFilter'
        },

        setFilter: function( param ) {
            // Set the current filter to be used
            Common.TodoFilter = param.trim() || '';

            // Trigger a collection filter event, causing hiding/unhiding
            // of the Todo view items
            Todos.trigger('filter');
        }
    });

2。类型:

var AppRouter = Backbone.Router.extend({

        routes: {
            // default
            '*actions': 'defaultAction'
        }

    });

    var initialize = function() {

        var router = new AppRouter();

        router.on('route:defaultAction', function(actions) {

            var homeView = new HomeView();
            homeView.render();

        });

        Backbone.history.start();

    };

    return {
        initialize: initialize
    };

那么,类型1中的普通回调(setFilter)和函数router.on(' route:defaultAction',function(actions)?

之间有什么区别?

1 个答案:

答案 0 :(得分:1)

来自Backbone Catalog of Events

  

“route:[name]”(params) - 在匹配特定路由时由路由器触发。

因此router.on('route:defaultAction'...方式绑定到路由器每次匹配路由时触发的事件。路由器本身不需要回调,但路由必须在routes-hash或route -function调用中定义。

第一种方法是使用the routes -object将路由与功能匹配的最基本方法。

  

路由哈希将带有参数的URL映射到路由器上的函数

希望这有帮助!