我有一个Mozart应用程序,我希望触发一个库/函数调用,在整个页面呈现后装饰DOM。
在使用jQuery的vanilla HTML应用程序中,我会做这样的事情:
$(document).ready(-> Library.decorate())
在这种情况下,我正在寻找某种afterRender回调或钩子,它会在视图发生变化时动态更新,而不是仅仅将其应用到window.onload
(因为decorate调用需要在DOM之后再次触发)已经改变了。)
答案 0 :(得分:1)
在渲染周期完成时触发的Layout类上有一个事件渲染:完成:
在 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()
渲染:完成仅在循环中的所有视图都已呈现时发生,但请记住,这将在每个渲染周期后调用,如果您的应用正在进行大量的重新渲染(无论如何都应该避免),最终可能会被重新调用。