我希望 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/