gpt4 book ai didi

javascript - 从区域中删除 View 时会触发哪些 View 事件?

转载 作者:行者123 更新时间:2023-11-30 15:49:25 25 4
gpt4 key购买 nike

我目前使用的是 Marionette 2.4.1。

在 View A 中,如果我从属于 View A 的区域中删除 View B,清空该区域时 View B 会触发哪些事件?

我知道在 View B 上,调用了 onDestroyonBeforeDestroy 但是我想知道如果该区域包含 {preventDestroy: true} 会触发什么事件?如果我使用它,onDestroyonBeforeDestroy 不会被调用,但我无法弄清楚 View B 上触发了什么事件。似乎没有。

最佳答案

假设您的 LayoutView 称为 View A,它有一个区域。在该区域中显示了一个名为 B 的 ItemView。当 A 清空其区域时,将在 View B 上触发事件(before:destroydestroy)——无论 View B 是否显示在其区域中,都会发生 preventDestroy: true 或没有。

preventDestroy: true 当您想要在一个区域中显示一个 View ,然后在同一区域中显示另一个 View 而不破坏前一个 View 时使用。所以,在这个例子中:


  1. 显示区域中的 View B。
  2. 在同一区域显示(不使用 preventDestroy)一个新 View (C) - 将导致 View B 被销毁并触发销毁事件。

  1. 显示区域中的 View B。
  2. 在同一区域显示(使用 preventDestroy)新 View (C) - 不会导致 View B 被销毁,因此不会触发销毁事件。

编辑

在第一种情况下,这些事件在 View 上触发:

::: 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

在第二种情况下,这些事件在 View 上触发:

::: 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

请注意,在最后一种情况下, View B 不会触发销毁事件,也不会触发其他事件。

关于javascript - 从区域中删除 View 时会触发哪些 View 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39619737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com