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