【问题标题】:How do I call a post render function in Mozart?如何在莫扎特中调用后期渲染函数?
【发布时间】:2013-07-03 05:52:12
【问题描述】:

我有一个 Mozart 应用程序,我想在整个页面呈现后触发一个库/函数调用来装饰 DOM。

在一个带有 jQ​​uery 的普通 HTML 应用程序中,我会做这样的事情:

$(document).ready(-> Library.decorate())

在这种情况下,我正在寻找某种在视图更改时会动态更新的 afterRender 回调或钩子,而不是仅将其应用于window.onload(因为在 DOM 更改后需要再次触发装饰调用)已渲染)。

【问题讨论】:

    标签: jquery dom coffeescript mozart-mvc


    【解决方案1】:

    在 Layout 类上有一个事件 render:complete 会在渲染周期完成时触发:

    在您的 app.coffee 或类似文件中:

    App.Application = Mozart.MztObject.create()
    
    App.Application.set 'layout', Mozart.Layout.create(
      rootElement: '#main'
      states: [
        Mozart.Route.create
        viewClass: App.HomePage
        path: "/"
        title: "Mozart"
    
        # ...other routes...
      ]
    )
    
    App.Application.layout.bind 'render:complete',  ->
      # Your handler code here
      Library.decorate()
    

    render:complete 仅在渲染周期中的所有视图时发生,但请记住,如果您的应用在每个渲染周期后调用正在做大量的重新渲染(无论如何你都应该避免),它最终可能会被调用很多次。

    【讨论】:

    • 谢谢,这正是我的要求。
    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多