我有一个区域,我需要在渲染视图后执行一些代码。因此,我第一次拨打myRegion.show(myView)
onShow
中myView
内的代码可以正常工作。
同一段代码无效onRender
或initialize
。问题来了,在myView
更改后,我致电this.render()
以反映更改。这次,“onShow”没有开火。
我认为我可以从视图中触发事件,在父视图中捕获它并再次调用myRegion.show(myView)。但它看起来像一个棘手的解决方案,我不知道是否有更好的方法来管理这种情况。
答案 0 :(得分:3)
onShow
回调一次。
我认为你应该使用onDomRefresh
。当视图显示在区域中并且在重新渲染时(但仅在已经显示时),Marionette会调用它。因此,您可以在其中制作所有与DOM相关的代码。
您可以在文档中阅读更多内容:https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.view.md#view-domrefresh--ondomrefresh-event