我想知道是否有任何标准设计模式被 Backbone(和类似)社区作为一个整体使用,反射(reflect)了 View 组件的可读性和设计的“最佳实践”,而不仅仅是将数据呈现到最后-user 但也允许编辑他们的内容。用户可以通过与链接或按钮交互来在读写演示之间切换。我想到的行为类型的一个很好的例子是 Stack Overflow Career 的网站,它允许您编辑您的条目并在读写上下文之间切换。
据我所知,是否有两种方法:
- 创建一个包含只读数据以及
<form>
的模板在单个模板中并连接显示/隐藏功能。 - 创建两个独立的 View ,一个用于只读数据,另一个用于
<form>
,并独立呈现两者。
还有其他的吗?社区中是否出现了关于应如何处理此设计模式的偏好?
最佳答案
如果您在表示层上更改某些内容,您绝对应该更改模型(例如在某些事件上)。它可以是您 View 中的经理。例如:
vare View = Backbone.View.extend({
className: 'panel-body',
template: 'datalibrary/dl-upload-form-file-view',
events: {
'change .someSelector': 'someHandler'
},
initialize : function(){
this.listenTo(this.model,'change','modelChangehalder')
}
someHandler: function(e){
// update model here
},
modelChangehalder : function() {
// some updates on model change
}
一旦你在你的模型中有了你的状态,你就可以随心所欲地玩,并将它保存到服务器,保存到存储或任何你想要的。
另请查看 Backbone.Controller项目。 它允许将 C 添加到 Backbones MV* 模式。在这种情况下,您将能够在 Controller 内管理您的 View 模型关系,我认为这是更好的方法。
关于javascript - 是否有一个标准的设计模式来处理具有读写状态的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22292240/