我目前正在使用Marionette 2.4.1。
在视图A中,如果我从属于视图A的区域中删除视图B,那么在清空该区域时视图B上会触发哪些事件?
我知道在视图B上,调用了onDestroy
和onBeforeDestroy
但是我想知道如果该区域包含{preventDestroy: true}
会触发哪些事件?如果我使用它,onDestroy
和onBeforeDestroy
不会被调用,但我无法弄清楚在视图B上触发了什么事件。似乎没有。
答案 0 :(得分:2)
假设你的LayoutView被称为视图A,它有一个区域。在该区域中显示了名为B的ItemView。当A清空它的区域时,将在视图B(before:destroy
和destroy
)上触发事件 - 无论视图B是否显示在preventDestroy: true
或不显示的区域中,都会发生这种情况。
preventDestroy: true
。所以,在这个例子中:
preventDestroy
)新视图(C) - 将导致视图B被销毁并触发销毁事件。preventDestroy
)新视图(C) not 会导致视图B被销毁,因此不会触发任何销毁事件。修改强>
在第一种情况下,会在视图上触发这些事件:
::: B ::: before:destroy
::: B ::: destroy
::: C ::: before:render
::: A ::: childview:before:render
::: C ::: render
::: A ::: childview:render
::: C ::: before:show
::: A ::: childview:before:show
::: C ::: before:attach
::: A ::: childview:before:attach
::: C ::: attach
::: A ::: childview:attach
::: C ::: dom:refresh
::: A ::: childview:dom:refresh
::: C ::: show
::: A ::: childview:show
在第二种情况下,会在视图上触发这些事件:
::: C ::: before:render
::: A ::: childview:before:render
::: C ::: render
::: A ::: childview:render
::: C ::: before:show
::: A ::: childview:before:show
::: C ::: before:attach
::: A ::: childview:before:attach
::: C ::: attach
::: A ::: childview:attach
::: C ::: dom:refresh
::: A ::: childview:dom:refresh
::: C ::: show
::: A ::: childview:show
请注意,在最后一种情况下,视图B不会触发销毁事件,也不会触发其他事件。