Layout Subtree View
The Layout Subtree View allows you to reload the content of a specific layout block via Ajax requests. This is useful for updating portions of a page dynamically without performing a full page reload.
Initialization
Layout Update
Define a layout update in your YAML configuration:
layout:
actions:
- '@addTree':
...
tree:
layout_block_id: ~
Adding LayoutSubtreeView in Twig Template
Include the LayoutSubtreeView in the block template to enable dynamic reloading:
{% block _layout_block_id_widget %}
<div id="block_id"
data-page-component-module="oroui/js/app/components/view-component"
data-page-component-options="{{ {
view: 'oroui/js/app/views/layout-subtree-view',
blockId : id,
reloadEvents: ['reload-on-event'],
restoreFormState: true
}|json_encode }}"
>
{{ block_widget(block) }}
</div>
{% endblock %}
JavaScript Initialization
You can also initialize the view directly in JavaScript:
var LayoutSubtreeView = require('oroui/js/app/views/layout-subtree-view');
var layoutSubtree = new LayoutSubtreeView({
el: '#block_id',
blockId: 'layout_block_id',
reloadEvents: ['reload-on-event'],
restoreFormState: true
});
Reloading the Layout
After initialization, the layout can be reloaded programmatically:
//then call reload method
layoutSubtree.reloadLayout();
Or you can trigger a reload from another script using the mediator:
var mediator = require('oroui/js/mediator');
mediator.trigger('reload-on-event');