我'我在Marionette有了LayoutView。仅提供onRender方法:
onRender: function() {
this.showChildView("content", new CanvasView({ model: this.model }));
this.showChildView("library", new LibraryView());
this.showChildView("properties", new PropertiesView({ model: this.model }));
}

在内容中有一个模型,它包含svg元素(例如,line,ellipse ...)及其属性。我需要在PropertiesView中更改模型。例如,我需要改变线宽或颜色并重新渲染内容"儿童观。我怎么能这样做? PropertiesView由输入集组成。例如:
Line color: <input type="text" id="id_2" name="style" value= <%= lineColor %>>
&#13;
答案 0 :(得分:1)
您可以使用Backbone event system。每次向模型设置任何内容时,change
事件都会触发。
在PropertiesView中,您可以添加一些事件以供用户交互。在每个输入设置上,内容为模型:
ui: {
'style': 'input[name=style]'
},
events: {
'input @ui.style': 'onInputStyle'
},
onInputStyle: function(){
this.model.set('style', this.ui.style.val());
}
在CanvasView中订阅它们并相应地更改您的视图:
modelEvents: {
'change:style': 'onChangeStyle'
},
onChangeStyle: function(){
this.$el.attr('style', this.model.get('style'));
}