Detach a Component under MVVM

From Documentation

Under MVVM Pattern

we have 2 approaches: 1. Change "src" of <include> Include your modal component with data binding, e.g.

<include src="@load(vm.myModal)">

By changing the attribute vm.myModal to empty string (""), the included components will be detached.

If you want to pass some arguments to include component for judgment, please refer to

2. Make a component invisible. If your requirement doesn't strictly have to detach a modal, and make it invisible is also acceptable. You can just bind an attribute to modal's "visible" property to control its visibility. It's relatively simpler approach.

Break MVVM Pattern

If you decide not to use pure MVVM pattern, and access components in a ViewModel.

There are 2 ways to access a component in a ViewModel:

The one is to pass a component as a parameter in a command binding.

The Another one is to wire a component in a ViewModel's member field like SelectorComposer.

After getting the component, you can do what the component can do by calling its method e.g. detach().