javascript - 单一责任原则和Backbone.View

标签 javascript backbone.js marionette single-responsibility-principle

我使用 Backbone.js。我有 popup1,它创建 popup2。 popup2 类似于组件,当它关闭时会触发事件“school_address:saved”。我需要在“school_address:saved”事件上向服务器发送请求。我将执行此操作的处理程序放置在 popup1 的 View 中(其实例仍然存在),但我不确定这个位置是否合适,因为 View 负责模板 UI 逻辑,不是吗?

您认为此类代码的最佳位置在哪里?如果我使用 Marionette.js 会怎样?

最佳答案

我们已经使用 BackboneJS 几年了,并且想知道过去是否有类似的案例......

由于 BackboneJS(与其他 JS 框架不同)不强制执行任何常见的方法,因此我通常会说这实际上取决于您的实现和应用程序流程。

但是,由于这些是弹出窗口/“应用程序模式”,我认为如果您根据当前的需要考虑以下内容将会有所帮助:

  1. 如果只有popup1可以实例化并显示popup2,则让popup1监听popup2触发的事件。

  2. 如果您预见到您的应用程序流程会发生变化,并且可能会在其他地方或独立地显示 popup2,我建议您从更高级别的 View (可能是您有路线的 View )监听 popup2 事件。这样,您的两个弹出窗口都将是“独立的”,您可以更轻松地回收它们的代码,并随着应用程序的增长提供更大的灵 active 。

关于javascript - 单一责任原则和Backbone.View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32949211/

相关文章:

javascript - Angular 模块包裹在函数(window、angular、undefined)周围,即使它们不需要

javascript - "Undefined is not a function"调用 Backbone 集合的获取函数时出错

javascript - Marionette:如何将 LayoutView 作为一行添加到 CompositView 表中?

backbone.js - 有没有办法使用 RequireJS 动态更改 Marionette ItemView 模板?

json - 如何使用 Backbone Marionette 处理 JSON 数据中的未定义值

javascript - jQuery UI 拖动 - 无法在填充区域上移动

javascript - 使用 Javascript 判断 CSS 类是否存在

javascript - 如果元素不适合 A4 尺寸,请为其留出空间

javascript - 带 Backbone 的预编译 Handlebars 内联模板

javascript - Backbone.js 嵌套 View 中的事件