File tree Expand file tree Collapse file tree 1 file changed +32
-1
lines changed Expand file tree Collapse file tree 1 file changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -22,4 +22,35 @@ composer require infinityloop-dev/lazy-component
22
22
23
23
## How to use
24
24
25
- TODO
25
+ - Create new component and extend ` \Infinityloop\LazyComponent\LazyComponent ` instead of ` \Nette\Application\UI\Control ` .
26
+ - Trigger ` handleLoadComponent ` to load and redraw component.
27
+ - Use macro ` {control componentName} ` to render your component as you would normally.
28
+ - Additionaly use ` {control componentName:loadComponentLink} ` to get URL for ` loadComponent ` signal.
29
+ - Useful for rendering URL (eg. into data attributes) so you can easily trigger signal from javascript.
30
+ - Make sure ` LazyCompoennt::render() ` method is called if you choose to override it.
31
+ - Preferably use ` beforeRender() ` to pass variables into template.
32
+ - ` beforeRender() ` method is not called when empty template is used (when component is not loaded).
33
+ - Template for your component is automaticaly deduced to be have same name (and path) as your ` .php ` file.
34
+ - File extension is simply swapped to ` .latte ` .
35
+ - By default the FontAwesome 5 spinner is used as placeholder. Override ` EMPTY_TEMPLATE ` constant to use different empty template file.
36
+
37
+ ### Example with tab and lazy tab content
38
+ ```
39
+ <li class"tab" data-load-component="{control myComponent:loadComponentLink}">Tab name</li>
40
+ ```
41
+ ```
42
+ <div class="tab-content">
43
+ {control myComponent}
44
+ </div>
45
+ ```
46
+ ```
47
+ $(".tab[data-load-component]").one('click',function (event) {
48
+ const link = $(this).data("load-component");
49
+ $.nette.ajax({
50
+ method: 'GET',
51
+ url: link,
52
+ });
53
+ });
54
+ ```
55
+
56
+ - Load event is executed only once ([ jqery.one] ( https://api.jquery.com/one/ ) ).
You can’t perform that action at this time.
0 commit comments