Javascript in a View Component

What I decided to do is write a ScriptTagHelper that provides an attribute of “OnContentLoaded”. If true, then I wrap the inner contents of the script tag with a Javascript function to execute once the document is ready. This avoids the problem with the jQuery library having not loaded yet when the ViewComponent’s script fires. … Read more

Shadow DOM styling from the outside

I did try many methods, including those described here. Since I’m using an external Web Component lib, I don’t have access to modify these components. So, the only solution that worked for me was using JS querySelector, like this: document.querySelector(“the-element.with-shadow-dom”) .shadowRoot.querySelector(“.some-selector”).setAttribute(“style”, “color: black”); Not the best solution, not suitable for large stylings, but does work … Read more

Mutation Observer Not Detecting Text Change

It’s because textContent triggers a different change than innerHTML, and your observer configuration is not configured to observe the changes made by textContent. textContent changes the child text node of the target. According to MDN setting textContent: Setting this property on a node removes all of its children and replaces them with a single text … Read more

Why do both Promise’s then & catch callbacks get called?

The then callback gets called because the catch callback is before it, not after. The rejection has already been handled by catch. If you change the the order (i.e. (promise.then(…).catch(…))), the then callback won’t be executed. MDN says that the .catch() method “returns a new promise resolving to the return value of the callback”. Your … Read more

What does the .subscribe() function do?

The .subscribe() function is similar to the Promise.then(), .catch() and .finally() methods in jQuery, but instead of dealing with promises it deals with Observables. That means it will subscribe itself to the observable of interest (which is getTasks() in your case) and wait until it is successful and then execute the first passed callback function … Read more