0

我是 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) 有什么区别?

4

1 回答 1

1

从事件的主干目录

"route:[name]" (params) — 当特定路由匹配时由路由器触发。

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

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

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

希望这可以帮助!

于 2013-01-17T20:49:47.683 回答