13

一見動作するように見えるバックボーン ルーターがセットアップされています。ルートが適切にトリガーされ、ビューが更新されます。ただし、ブラウザーの [戻る] ボタンを押しても、ルートはまったくトリガーされません。また、ブラウザに URL を入力しても、ルーターはトリガーされません。ブラウザ固有のものをバックボーン (Firefox 11) にバインドするために欠けている手順はありますか?

設定

var messageRouter = new MessageRouter({view: messageListView});
Backbone.history.start();

引き金

Backbone.history.navigate("#/view/" + $(this).data("filter-type"), {trigger: true});

ルーターコード

var MessageRouter = Backbone.Router.extend({

    view : null, /* should always be overridden */

    initialize : function(options)
    {
        this.view = options.view;
    },

    routes : {
        "" : "default",
        "/view/:filter" : "filter",
        "camera" : "camera"
    },

    default : function() {
    },

    filter : function(filterString) {
        this.view.setFilter(filterString);
        this.view.rerender();
    },

    camera : function(cameraString) {
    }

});
4

3 に答える 3

1

既に定義したのと同じパスを使用してrouter .navigate を呼び出す必要があります。すなわち:

引き金

messageRouter.navigate("/view/" + $(this).data("filter-type"), {trigger: true});

ルーター

 routes : {
        "" : "default",
        "/view/:filter" : "filter",
        "camera" : "camera"
    },
于 2012-05-15T18:05:52.010 に答える