我无法确定是否可以使用backgone.history.loadUrl将字符串传递到视图中?

//My current method of reloading the view
Backbone.history.loadUrl(Backbone.history.fragment);


我想尽可能使用此方法,以便它从骨干路由器渲染视图,而不是从自身内部再次渲染视图并将其作为该视图的选项传递。

//Destroy old view
//Render view again
var view = new myView("success msg");

最佳答案

这是使用重载功能扩展Backbone.history的简单方法:

_.extend(Backbone.history, {
    reload: function(){
        return this.loadUrl(this.getFragment());
    }
});


如果要编写库/插件,请不要这样做。

然后在任何地方调用Backbone.history.reload();将再次调用路由。

这是重新渲染视图的好方法吗?没有。

如果要在其内部重新渲染视图,请不要重新加载整个路线。

var View = Backbone.View.extend({
    // events, etc. ...
    render: function() {
        // rendering
        if (this.success) {
            // show success message
        }
        return this;
    },
    onMyEvent: function() {
        // here, a re-render with a success message is necessary
        this.success = true;
        this.render();
    }
})

07-24 18:34
查看更多