在哪里调用Backbone.history.start()?

时间:2013-11-13 06:53:08

标签: backbone.js marionette

我已经阅读了很多关于Backbone和Backbone-Marionette的博客和教程。在一些博客中,作者正在开始历史记录,即Backbone.history.start()在应用'initialize'事件中,有些在应用'initialize:after'事件中,有些在应用'start'中路由器“initialize”事件中的事件和其他事件。好吧,他们在各地都做得很好。

但仍然可以请任何人帮我解释,这将是致电Backbone.history.start()的最佳方式。

2 个答案:

答案 0 :(得分:3)

最可靠的方法是使用initialize:after,因为它将在所有初始化程序运行后启动历史记录(顾名思义)。由于路由器通常在initialize函数中声明,这意味着在启动目标时,所有路由器都准备好并侦听路由事件。

如果您只是使用初始化程序或start,则在相关路由器准备好处理该路由之前,您可能会冒着启动历史记录(并尝试触发路由)的风险。

在您看到的情况下,它通常起作用,因为只涉及一个路由器。但initialize:after方法适用于所有情况。

答案 1 :(得分:2)

没有最好的办法。因为它是一个“开始并忘记它”的方法而且你不会再次访问它,所以只要它在你的应用程序中启动就没有区别(就像上面任何一种方法一样)。这一个都是关于风格的。