Armen Vardanyan
banner
armenvardanyan.dev
Armen Vardanyan
@armenvardanyan.dev
GDE for Angular, front-end team lead. I write articles and talk at conferences
I've been thinking, since in Armenia we celebrate Christmas on January 6th instead of December 25th, and the 25th is a Wednesday, why not do one final livestream and sum up the year for Angular? 😁

Would you watch it?
December 12, 2025 at 1:21 PM
During the latest livestream, we also explored two interesting articles touching on the topic of RxJS vs Signals.

Let's talk about them, as you should definitely check them out to get a better grasp of how everything works!
December 12, 2025 at 11:17 AM
Here's another example from yesterday's livestream

You do not need to manually `reload` a signal when the user clicks "next page". Instead, you should think of your resource as dependent on the `page` state and increment the page number when the user clicks. Super easy, fully declarative:
December 11, 2025 at 1:48 PM
We did a lot of examples with Signals + RxJS on yesterday's livestream, I'm gonna post them all 😁

Here's an example of a resettable timer with `linkedSignal` and an RxJS `interval` Observable:
December 11, 2025 at 12:36 PM
Don't forget to tune in today! We are going to answer the most crucial question: "When do we use signals and when do we use RxJS?" (and many more)

Tonight, at 4 PM UTC
December 10, 2025 at 1:58 PM
Do you know how to stop an `rxResource` from executing immediately so that we can trigger it later manually?
December 10, 2025 at 12:19 PM
What will this code do? And, more importantly, why?
December 10, 2025 at 11:17 AM
I'm back 😁

This week, let's talk about RxJS and answer some burning questions I keep seeing Angular devs ask

- Is RxJS no longer needed?
- Should we replace Observables with Signals?
- If we use both, how do we understand when to reach out for what? (1/2)
December 8, 2025 at 1:04 PM
No stream today! A very busy week at hand 😁

Promise to be back next week!
December 3, 2025 at 12:47 PM
Can you guess which of our livestreams was watched by the most people? 😁
December 1, 2025 at 12:31 PM
For me, the biggest improvement that Signal Forms brings is how easy it is now to create custom control components

No more `ControlValueAccessor` and boilerplate, simply drop some inputs/model signal for value/disabled state/etc, and you're done!

Here's a reusable Rating component example:
December 1, 2025 at 11:15 AM
Custom validation is super easy with signal forms, even when the logic is a bit complex; no need to define a separate function, just use `validate` inline.

Here's an example of multiple string inputs (array), none of which can be empty:
November 28, 2025 at 12:35 PM
Wow, already at least 472 people watched the Zoneless livestream

I feel zoneless is going to continue being a big topic, especially with how it makes Angular simpler again (like the new control flow and standalone)

Watch it here if you missed it: www.youtube.com/watch?v=hfyu...
November 28, 2025 at 11:10 AM
It's a slow day, might post signal form examples 😁
November 28, 2025 at 10:39 AM
During yesterday's livestream, we discovered that setting the change detection strategy to `OnPush` on the root component (AppComponent) actually does something

Change detection now runs once each time (as opposed to twice). I'm unsure what that means or why this happens. Anyone care to weigh in?
November 27, 2025 at 3:34 PM
So, are we sure we know the difference between the two? 😁
November 27, 2025 at 2:55 PM
Any good resources on steps to upgrade to application builder in v17 without upgrading to v18/v19?
December 16, 2024 at 9:11 AM
Quick question: do you think about a class getter as "derived state"?
December 10, 2024 at 11:20 AM
Did you know you can create #Angular template-driven form groups?

Defining forms is easy even without reactive if you know the details. You can use `ngModelGroup` to achieve the same result:
December 9, 2024 at 12:36 PM
Another just-for-fun question

So, the #RxJS `tap` operator is specifically designed to perform side-effects

However, its implementation is just taking an Observable and returning a new one with the side-effect slapped on it

So, is `tap` itself a pure function or not? 😁
December 9, 2024 at 11:59 AM
#NgRx ESLint ruleset has a rule that prohibits mapping Observables from the store to be mapped in component

Instead, it encourages the use of new, derived selectors and a direct selection of the state

I believe we should not create computed properties from store signals

What do you think?
December 2, 2024 at 3:13 PM
When we make HTTP calls in #Angular, sometimes we need to map the response to something else

With `rxResource`, would you prefer to do it with an #RxJS operator, or with a computed/linked signal?

I prefer doing it with RxJS, but I want to hear opinions
December 2, 2024 at 11:33 AM
Important to remember: while `Resource` implements some methods from `WritableSignal` (set, update), it is not itself a signal.

If you want to bind a resource to `ngModel` in your #Angular component template, use its `value` signal, not the resource itself:
November 28, 2024 at 2:14 PM
I never understood why people would make Facades for #NgRx, I don't get the point.

Isn't NgRx itself already a facade? A big, complex system with which you interact only via two simple methods (dispatch, select)
November 28, 2024 at 12:18 PM
You can call methods of a child component in #Angular templates via a reference variable

Do you think this is a bad practice? If so, how can we avoid it? What would be some cases where this is justified?
November 26, 2024 at 2:24 PM