如何更改模型并从另一个视图渲染木偶视图

时间:2015-10-03 07:41:27

标签: javascript render marionette

我'我在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;
&#13;
&#13;

1 个答案:

答案 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'));
}