1. ホーム
  2. javascript

[解決済み] ビューにパラメータを渡す方法

2023-02-13 15:05:42

質問

クリックするとボタンのすぐ下にポップアップメニューが表示されるボタンがいくつかあります。私はボタンの位置をビューに渡したい。どのように私はそれを行うことができますか?

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を構築する際に、追加パラメータを渡すだけです。そのため initialize 関数を追加する必要はありません。

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

そして、その中の MenuView を使用することができます。 this.options.position .

UPDATEです。 として は短すぎる状態です。 は、1.1.0 から Backbone Views はコンストラクタに渡されたオプションを自動的に this.options としてアタッチしなくなりましたが、必要であれば自分でアタッチすることができます。

というわけで、あなたの initialize メソッドで options として渡された this.options :

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

または、より細かい方法として によって説明されているように、@Brave Dave .