Welcome to the Angular feedback portal. We’re happy you’re here! If you have feedback on how to improve the Angular, we’d love to hear it!>
Thanks for joining our community and helping improve Syncfusion products!
Hi Support,
I wanted to have a global spinner with overlay in all my application pages, so that it blocks the whole screen while processing, so I followed the instruction in this link. At the same time, I wanted this spinner to override all datagrid spinners, so I followed this suggestion (first reply).
However, I found out there is a conflict between these two solutions.
As can be seen in the below code (extracted from
https://github.com/syncfusion/ej2-javascript-ui-controls/blob/master/controls/popups/src/spinner/spinner.ts), showSpinner method gets spinner to be shown using only its class (e-spinner-pane), but when I have both a datagrid and a spinner created with the service in the same page, both have this same class. So, when I invoke showSpinner method, instead of showing the service spinned, it tries to show the datagrid spinner (which is not shown, due to the display:none style added to the class, as per the 2nd link suggestion).
function showHideSpinner(container: HTMLElement, isHide: boolean): void { let spinnerWrap: HTMLElement;
if (container) { spinnerWrap = container.classList.contains(CLS_SPINWRAP) ? container :
container.querySelector('.' + CLS_SPINWRAP) as HTMLElement; }
As a workaround, I created a funcion (invoked using the created() event from datagrid) to remove the datagrid spinner, leaving only the one created by the service.
Anyway, please consider the suggestion of creating an easier workaround for this: for instance, a property which would allow the grid to be created without a spinner of its own.
Please let me know if you requirer any further details.
Best regards,
Marco.