javascript - 是否有一个标准的设计模式来处理具有读写状态的 View ?

标签 javascript design-patterns backbone.js

我想知道是否有任何标准设计模式被 Backbone(和类似)社区作为一个整体使用,反射(reflect)了 View 组件的可读性和设计的“最佳实践”,而不仅仅是将数据呈现到最后-user 但也允许编辑他们的内容。用户可以通过与链接或按钮交互来在读写演示之间切换。我想到的行为类型的一个很好的例子是 Stack Overflow Career 的网站,它允许您编辑您的条目并在读写上下文之间切换。

据我所知,是否有两种方法:

  1. 创建一个包含只读数据以及 <form> 的模板在单个模板中并连接显示/隐藏功能。
  2. 创建两个独立的 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/

相关文章:

javascript - 日期负 30 天误差

java - 模式观察者和Spring

java - 我如何应用 "Factory Pattern"在 Java 中实例化 Firefox、IE 和 Chrome 浏览器实例

javascript - 数据不会加载到模板中

javascript - 调试 Backbone.js

javascript - 在 Angular.js 中调整图像大小

javascript - 将数据传递给堆积柱形图(Highcharts 框架)

javascript - Adobe Canvas HTML5 AS3 点击标签

java - 如何在 PageObjects 模式中使用 WebDriver/Selenium 2 LoadComponents?

javascript - 渲染 View 后主干事件未触发