【问题标题】:When DOM gets ready in Backbone view当 DOM 在 Backbone 视图中准备就绪时
【发布时间】:2013-10-09 07:49:23
【问题描述】:

我正在使用backbone.js 和marionette.js 开发一个网络应用程序。现在实际上我们有

$( document ).ready(function() {
// Handler for .ready() called.
}); 

如果我想在 dom 在 Backbone 中准备好时编写代码,我应该在哪个函数中编写、初始化、渲染、onDOMRefresh。

【问题讨论】:

  • Backbone 的 History 模块有一个 start() 方法,它将启动您的应用程序。不要忘记先设置路线
  • 如果在 render() 中附加模板,则在模板附加后编写文档就绪代码。
  • @user10 我不坚持渲染,但我想知道我可以用哪种方法编写没有骨干的代码,我在 document.ready 中编写。
  • 默认情况下,骨干网中没有类似的东西。由你决定。如果您使用路由器,那么您将在不同的视图之间切换。所以你应该在视图的渲染方法中调用东西。如果您不使用路由器,那么您可以开始在 document.ready 中初始化您的主干视图。
  • 为什么不保留这个以了解 DOM 何时准备就绪? Backbone 需要 jQuery,所以我看不出有什么问题。

标签: jquery dom backbone.js marionette


【解决方案1】:

我认为您正在寻找 onShow 方法。当 Marionette 调用此方法时,DOM 元素已准备好供您访问。

【讨论】:

    【解决方案2】:

    如果您正在使用 Marionette,那么这就是您询问的方法的工作方式:

    initialize 在 View 首次出现时被调用。这是处理您可能从父视图、设置默认值等传递的任何选项的好地方。

    onRender 每次在该视图中触发“渲染”事件时都会被调用。 “渲染”事件可以在第一次实例化视图时触发,也可以在视图调用.render() 时触发(当您想要更新此特定视图中的内容时可以这样做)。 onRender 在视图的整个生命周期中可能会被多次调用。

    onShow 每次触发来自父布局的“显示”事件时都会被调用。 “显示”事件由布局中调用.show(subView) 的区域触发。 onShow 在视图的生命周期内只会被调用一次。

    onDomRefresh 在重新渲染视图并且其新内容安全地位于 DOM 后调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-04
      • 2012-10-16
      • 2023-03-11
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      相关资源
      最近更新 更多