如何改变模型和渲染木偶视图从另一个视图
How to change model and render Marionette view from another view
我在木偶里有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 %>>
您可以使用Backbone事件系统。每次您为模型设置任何内容时,change
事件都会触发。
在PropertiesView中,你可以为用户交互添加一些事件。对于每个输入,将其内容设置为model:
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'));
}
相关文章:
- 在Angular ui路由器中,如何将事件从一个视图发送到另一个视图
- 当我点击MVC视图中的图像时,如何打开另一个页面
- 遍历SC.ManyArrray以创建要附加到SproutCore中的另一个视图的自定义视图
- ASP.NET angularjs重定向到控制器的另一个视图
- 如何在angularjs中调用局部视图所需的另一个javascript
- 通过jquery将网格视图数据发送到另一个页面
- 另一个 UI 视图中的角度 UI 视图
- 从Backbone中的另一个视图调用新视图
- 想要使用链接将数据发送到另一个视图
- Couchdb:是否可以从另一个视图中查询一个视图
- 如何在另一个视图中获取元素的引用id-UI5
- AngularJS+Ionic-将内容附加到另一个页面/视图
- 如何计算另一个元素上滚动速度的乘数,使它们同时到达终点(视图顶部)
- 另一个集合视图中的集合视图
- 列表视图添加另一个不需要的页面项目
- 将数据从一个主干视图传递到另一个
- 获取Backbone中另一个视图的id
- 将事件从一个视图触发到另一个视图
- 如何检测一个数据角色=“页面”中对特定列表视图项的单击,并在另一个数据上显示相应的数据
- 如何打开一个弹出对话框在网格视图(另一个弹出)的超链接点击