是否有标准设计模式来处理具有读写状态的视图?

时间:2014-03-10 04:44:24

标签: javascript design-patterns backbone.js

我想知道Backbone(和类似的)社区是否采用任何标准设计模式作为一个整体,反映了视觉组件的可读性和设计的“最佳实践”,不仅将数据呈现给最终-user还允许编辑其内容。用户可以通过与链接或按钮交互来在读写呈现之间切换。我正在考虑的行为类型的一个很好的例子是Stack Overflow Career的站点,它允许您编辑条目并在读写上下文之间切换。

我看是否有两种方法:

  1. 在单个模板中创建一个包含只读数据和<form>的模板,并连接显示/隐藏功能。
  2. 创建两个单独的视图,一个用于只读数据,另一个用于<form>,并且可以单独渲染。
  3. 还有其他人吗?在社区中是否存在关于如何接近这种设计模式的偏好?

1 个答案:

答案 0 :(得分:0)

如果您在表示层上更改某些内容,则应该更改模型(例如,在某些事件上)。它可以是您视图中的经理。例如:

    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 *模式。在这种情况下,您将能够管理控制器内部的视图模型关系,在我看来,这是更好的方法。

相关问题