我确实有一些动态加载的 ItemViews 加载到布局区域中。模板包含 jquery-ui 组件,例如 slider “#mySlider”。我使用 Maronette.Region onShow 事件初始化组件。我的观点如下:
var MyView = Backbone.Marionette.ItemView.extend({
template: '#my-tpl',
initialize: function() {
_.bindAll(this);
},
onShow: function(){
$('#mySlider').slider({
min: 1,
max: 10,
slide: function( event, ui ) {
//some code here to update the the Views model, like
//this.model.set({'stroke': ui.value});
}});
.....
显然这不起作用,因为 this.model 不是像 #mySlider 中那样定义的。我如何正确执行此操作并捕获 jquery-ui 事件作为 Marionette.ItemView 事件?
最佳答案
一个简单的关闭就可以了。
fiddle :http://jsfiddle.net/puleos/z7QsC/
var SliderView = Marionette.ItemView.extend({
template: "#slide-template",
initialize: function() {
_.bindAll(this);
},
onShow: function() {
var self = this;
$('#slider-range').slider({
min: 1,
max: 10,
slide: self.updateSlider
});
},
updateSlider: function(event, ui) {
this.model.set({'stroke': ui.value});
}
});
关于jquery-ui - 如何监听 Marionette.ItemView 中的 jquery-ui 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334773/