This is, imo, a behaviour of reactive development I dislike. Compared to lifecycle hooks and rxjs subject/behavior subject workflow. But here you go.

effect(() => {
  // this registers the dependency;
  // will trigger the effect when signal value changes.
  this.someSignal()
  // Rest of logic to run when something happens.
  // use a rxjs subject if you want to register somethign across the application.
  this.callYourMethod()
})

In order to register signal change status so the system knows to update things, you have to register the use of the signal inside of an effect. It doesn’t have to do anything just simply be called in order for it to be registered.

Personally, I would have had another effect type function created watchEffect or something else that would be used for this kind of workflow.

This is a space I need to work on for my mental model though, since so many React devs and other devs that are more functional prefer this way of writing code. Could be coming from my dislike of implicit code vs explicit… anyway there you have it.