javascript - Backbone - 插入 JavaScript 来操作 DOM 的最佳位置在哪里

标签 javascript dom backbone.js

我希望 JavaScript 与我的 Backbone 模板紧密集成,并且由于 View 引用要使用的模板,我相信这将是存储 JavaScript 的最佳位置,对吗?但如何呢?

特别是,我有 JavaScript,它在 View 渲染并准备好(不是事件)时设置 DOM。我最初在模板中设置了此脚本,但这仅在首次加载应用程序时触发,当您通过 Backbone 的路由器导航回 View 时,不会触发 JavaScript。

最佳答案

模板并不是用来存储您的 JavaScript - 它们应该是由您的 View 呈现的愚蠢 html 模板。

当您从 View 加载模板时,该 View 需要与将与您的应用程序交互的所有 DOM 元素绑定(bind)。

如果您的 View 仅绑定(bind)到 DOM,那么这是一个很好的做法,因此它可以触发内部事件。

然后,您可以创建“ Controller ”来监听您的 View 实例并与其交互,触发方法以在 DOM 中进行某些更改,或准备 View 要使用的集合和模型。

但是,您可以使用许多其他库来组织代码逻辑加载。

我喜欢requirejs ,但是commonjs有很多有用的选项。

将 JavaScript 放入模板中就像将其与 HTML 混合一样。这不是一个好主意,因为您将逻辑与结构混合在一起,一旦应用程序增长,它就会变得难以维护。

我用 MVC 风格组织代码,这使得开发和测试大型应用程序变得很简单。例如,如果我想要模型/集合,它们位于 MODEL/COLLECTION 文件夹中,CONTROLLER 文件夹将保留我的应用程序的逻辑部分,VIEW 文件夹将保留与 DOM 交互的文件,就像 Django 一样,我添加了一个模板模板文件夹,尽可能简单。

只是为了解释您的问题:

当您加载带有脚本的模板时,您将执行该脚本。此后,您的模板将被存储在内存中,这意味着您里面的脚本将永远不会再次被触发。你可以修复它,但你会做错。通过在 Backbone 中绑定(bind) View 渲染方法,可以在渲染后触发您的脚本。

关于javascript - Backbone - 插入 JavaScript 来操作 DOM 的最佳位置在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14313546/

相关文章:

javascript - 从 Backbone.js 模型中删除属性

javascript - 分配给单击事件的 ID 在 backbone.js 中不起作用?

javascript - 动态调整 iframe 的大小

javascript - Node.js 执行 sql 文件

javascript - 检查 div 是否已经显示,并将其隐藏

javascript - 如何使用 JavaScript 和 CSS 创建弹出面板,没有库?

javascript - 给定一个 dom 元素,我如何在 jquery 和/或 JavaScript 中将其展平?

javascript - 通过随机点绘制好看的贝塞尔曲线

PHP Simple HTML DOM Parser 不处理无效的 HTML - 在第一次试用时卡住了

javascript - 前端JavaScript加载 View 的设计模式