【问题标题】:Backbone switch between different views and domReady functions do not work不同视图之间的主干切换和 domReady 功能不起作用
【发布时间】:2015-02-26 13:18:51
【问题描述】:

在我的应用程序中,我通过使用主干路由器将主干视图用于用户、任务、日历等不同页面,我正在从一个视图(例如任务视图)切换到另一个视图(例如日历视图)。一切正常,除了 dom 就绪功能在我切换视图后不起作用。 我的应用程序的后端在 laravel 中,所以我对所有页面都有一个通用的 laravel 视图,我只是在没有任何页面刷新的情况下切换主干视图。我的 dom 就绪功能在页面刷新后会工作一次,但如果我切换到另一个视图,它们就会停止工作。 注意:Dom 就绪函数链接到视图模板类和 id。所有视图都有相似的模板和相似的 id。但是当我切换视图时,我会删除旧视图并附加新视图及其模板。 任何想法如何让这些工作。为了准备好文档,我正在使用 require.js 中的 domready

【问题讨论】:

    标签: backbone.js document document-ready


    【解决方案1】:

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

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

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

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

    Backbone.js 在 Backbone 更改页面时触发“路由”事件。

    "route" (router, route, params) — 由历史(或路由器)触发 任何路线都已匹配。

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

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

    您可以改用该事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      相关资源
      最近更新 更多