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 に答える