在骨干js中的只读视图和编辑视图之间切换

mza*_*fer 8 backbone.js

我正在寻找Backbone js中的模式来在readonly和edit视图之间切换.如果视图的触发器在视图外部,那么没问题我可以创建适当的视图(只读或编辑)并渲染它,但在我的情况下,编辑视图的触发器将在只读视图内.

例如,假设我正在显示处方,默认情况下它处于只读模式,并且在悬停时会显示编辑图标.点击此编辑图标,现在应该用编辑视图替换只读视图.什么是实现这一目标的最佳方法.以下是我正在考虑的几个选项

  1. 拥有一个PrescriptionView,其中包含编辑图标和编辑模式所需的所有表单字段.它还具有基于编辑触发器将视图从只读模式更改为编辑模式的逻辑.
  2. 有两个视图PrescriptionReadView和PrescriptionEditView.ReadView将具有编辑图标并onclick用editview替换readview.

我倾向于#2但不确定如何以优雅的方式实现它.对此有任何想法都会有所帮助.

谢谢Zafer

小智 12

如果您将漂亮的视图与编辑视图分开,那么您的生活将会相当轻松,因为无论出于何种目的,它们都是相同数据的两个不同视图,具有不同的事件处理需求和不同的行为.所以,你引导你走向#2的直觉就是.

我能想到的最干净的实现是创建一个可以处理模式交换事件的容器视图(比如PrescriptionView).容器将拥有对当前活动处方视图的引用,并将处理该视图的创建以及非活动视图的清理(删除和取消绑定).这使得所有逻辑都保持良好且独立.

  • 您可以通过Backbone.Router隧道切换逻辑,"编辑"按钮只会激活路由,该路由的处理程序将告诉PrescriptionView切换到编辑模式; PrescriptionEditView中的保存/取消操作可以激活"显示处方"路线. (3认同)