backbone.js:如何传递参数到视图

我有一系列的按钮,当点击显示一个弹出菜单位于按钮的正下方。我想把按钮的位置传递给视图。我怎样才能做到这一点?

ItemView = Backbone.View.extend({
    tagName: 'li',
    events: {
        'click': 'showMenu'
    },
    initialize: function() {
        _.bindAll(this, 'render');
    },
    render: function() {
    return $(this.el).html(this.model.get('name'));
    },
    showMenu: function() {
        var itemColl = new ItemColl();
        new MenuView({collection: itemColl}); // how to pass the position of menu here?
    }
});
你只需要在构造MenuView时传递extra参数。无需添加初始化函数。

new MenuView({
  collection: itemColl,
  position: this.getPosition()
})

然后,在MenuView中,可以使用this.options.position。

更新:作为@mu is too short states,自1.1.0,Backbone Views no longer automatically attach options passed to the constructor as this.options, but you can do it yourself if you prefer.

因此,在初始化方法中,您可以保存作为this.options传递的选项:

initialize: function(options) {
    this.options = options;
    _.bindAll(this, 'render');
},

或使用一些更精细的方式为described by @Brave Dave

http://stackoverflow.com/questions/7803138/backbone-js-how-to-pass-parameters-to-a-view

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:backbone.js:如何传递参数到视图