编程语言
首页 > 编程语言> > javascript – 如何在Marionette.js CollectionView中获取所选模型?

javascript – 如何在Marionette.js CollectionView中获取所选模型?

作者:互联网

我有一个Marionette CollectionView,它将ItemView呈现为< select>菜单,每个ItemView渲染为< option>.我的问题是,当我在CollectionView上调用’change’事件(意味着用户选择了一个选项)时,如何获得所选<选项>的模型.从ItemView?

var singleView = Marionette.ItemView.extend({
        template: '#optionTemplate',
        tagName: 'option'
    });

var listView = Marionette.CollectionView.extend({
        itemView: singleView,
        tagName: 'select',
        id: 'my-selector',
        events: {
            'change': 'optionSelected'
        },
        optionSelected: function() {
          // I need to get the model from within this function

        }
    });

解决方法:

最干净的方法是将具有相应模型的ID的选项标签呈现为值:< option value =“42”> Forty Two< / option>.然后,在更改时,获取该值并使用它通过ID与collection.get(id)从集合中检索模型.像option这样的一些元素有一个自然属性,有意义的是模型ID,但对于其他元素,你可以使用data-id =“42”属性.

另一种可行的方法虽然我认为不如上面那么简单和干净,但是使用jQuery的.data方法或等效方法将模型实例与元素相关联.

标签:javascript,backbone-js,marionette
来源: https://codeday.me/bug/20190728/1566560.html