主干-插入JavaScript以操作DOM的最佳位置是什么

主干-插入JavaScript以操作DOM的最佳位置是什么,javascript,dom,backbone.js,Javascript,Dom,Backbone.js,我希望JavaScript与我的主干模板紧密集成,并且作为视图参考使用哪个模板,我相信这将是存储JavaScript的最佳位置,对吗?但是怎么做呢 特别是,我有JavaScript,它在视图呈现并准备就绪(不是事件)时设置DOM。我最初在模板中设置了这个脚本,但只有当应用程序首次加载时才会触发,当您通过主干路由器导航回视图时,JavaScript没有被触发。模板不是用来存储JavaScript的,它们应该是哑html模板,由您的视图呈现 从视图加载模板时,此视图需要与所有将与应用程序交互的DOM

我希望JavaScript与我的主干模板紧密集成,并且作为视图参考使用哪个模板,我相信这将是存储JavaScript的最佳位置,对吗?但是怎么做呢


特别是,我有JavaScript,它在视图呈现并准备就绪(不是事件)时设置DOM。我最初在模板中设置了这个脚本,但只有当应用程序首次加载时才会触发,当您通过主干路由器导航回视图时,JavaScript没有被触发。

模板不是用来存储JavaScript的,它们应该是哑html模板,由您的视图呈现

从视图加载模板时,此视图需要与所有将与应用程序交互的DOM元素绑定

如果您的视图只有到DOM的绑定,那么这是一种很好的做法,因此它可以触发内部事件

然后,您可以创建“控制器”,它将侦听您的视图实例并与之交互,触发方法在DOM中进行一些更改,或者准备视图使用的集合和模型

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

我喜欢,但有很多有用的选择

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

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

为了解释你的问题:


在加载带有脚本的模板时,将执行脚本。在此之后,您的模板将存储在内存中,这意味着您的脚本将永远不会被再次触发。你可以修复它,但你会做错事。渲染后,可以通过在主干中绑定视图渲染方法来触发脚本。

最好的办法是发布一些代码,以便我们能够准确地看到出现了什么问题或试图实现什么。渲染主干视图时是否正在执行主干.history.start()?似乎是路由器问题,但你可能问错了问题,这听起来有点混乱。谢谢Gabriel,我知道这是一个肮脏的解决方案。简而言之,我的问题是:如何在视图的domready上执行JavaScript来操作DOM?通过谷歌找到这个问题的答案有点困难。@DallasClark你们看过主干示例页面了吗?如果您使用的是jQuery,那么可以
$(function(){/*这里是代码,dom已经准备好了*/}),您还可以在执行views render后使用cam触发器脚本,因此如果您的视图已经在DOM中,它将简单地更改DOM,如果不在DOM中,您可以渲染并附加到DOM元素。花点时间看看这个网站:会帮助你的。是的,我有。我现在开始更了解它了,只需要一点时间,我就可以同时了解Rails、Coffeescript、SASS和主干。一周后,我觉得我做得很好,感谢像你这样的人。干杯