不同视图和domReady功能之间的骨干切换不起作用

时间:2015-02-26 04:49:58

标签: backbone.js document document-ready

在我的应用程序中,我通过使用骨干路由器将骨干视图用于不同的页面,例如用户,任务,日历等。我正在从一个视图(例如Taskview)切换到另一个视图(比如日历视图)。一切正常,但切换视图后,dom ready函数不起作用。 我的应用程序的后端是laravel所以我有一个共同的laravel视图所有页面,我只是切换骨干视图,没有任何页面刷新。我的dom ready函数在页面刷新后工作一次,但是如果我切换到另一个视图,它们就会停止工作。 注意:Dom ready函数链接到视图模板类和id。所有视图都有类似的模板和类似的ID。但是当我切换视图时,我删除旧视图并添加新视图及其模板。 任何想法我怎样才能使这些工作。准备好文件我正在使用来自require.js的domready

1 个答案:

答案 0 :(得分:1)

您可能误解了$( document ).ready()是什么。

  

$(document).ready()只会运行一次页面文档对象   模型(DOM)已准备好执行JavaScript代码。

http://learn.jquery.com/using-jquery-core/document-ready/

并且因为你正在制作SPA(单页面应用程序),它控制DOM来改变页面而不会移动到另一个html文件。所以$(document).ready()只被触发一次。

当Backbone更改页面时,Backbone.js会触发“route”事件。

  

“route”(路由器,路由,参数) - 由历史(或路由器)启动时   任何路线都已匹配。

http://documentcloud.github.io/backbone/#Events-catalog

yourMainController.listenTo(yourRouter,"route", function(route, params) {
    console.log("move to " + route);
});

您可以改为使用该活动。