5

私は最初のバックボーンプロジェクトに出くわし、ボタン要素がクリックされた後にURLを更新しようとしています。

window.location.hashを介して手動でURLを設定できますが、これは正しい方法ではないと思います。誰かがURLを更新するための好ましい方法を教えてもらえますか?

var AppView = Backbone.View.extend({
   events: {
        "click #loadProject": "filterProject",
    },
    filterProject: function(){
        var projectID = $('#selectProject option:selected').val();
        var orgID = 'test';

        // Is there a better way to do this?
        window.location.hash = '/'+orgID+'/'+projectID;

        this.renderProject(orgID,projectID);
    },
    renderProject:function(orgID,projectID){
     //Some code
    },
});

//Routing
var PropertiesRouter = Backbone.Router.extend({
    routes: {
        "/:who/:project":"getProjects", //#/org/1
        "/:who":"getOrganisation", //#/org
        "*actions": "defaultRoute"          
    },
    getProjects:function(who,project){
        app.renderProject(who,project);
    },
    getOrganisation:function(who){
        app.renderOrganisation(who);
    },
    defaultRoute: function(actions){
        app.renderHomePage();
    },
});

var app = new AppView();
//create router instance
var propertiesRouter = new PropertiesRouter();
//start history service
Backbone.history.start();

ありがとう!

4

1 に答える 1

8

確かに を呼び出すことができますwindow.location.hashが、これにより、作成しようとしている分離バックボーンの一部が壊れます。に電話することをお勧めしますrouter.navigate(..)http://backbonejs.org/#Router-navigateを参照

于 2012-05-10T16:41:04.197 に答える