14

Is it possible to detect change in a variable?

I have the following:

@Input('name') name: string;

I would like to call a function whenever change is happened in this variable 'name'.

Is it possible?

2 Answers 2

8

You can do it the following:

private _name = '';

@Input('name')
set name(name: string) {
   this._name = name;
   doSomeStuff();
}

get name(): string { return this._name; }
Sign up to request clarification or add additional context in comments.

Comments

3

I am solve this question using default Angular feature named OnChanges, very similar to OnInit.

https://stackoverflow.com/a/61720541/13514355

2 Comments

This is in fact the correct answer. Now sure why it was voted down! Direct link to Angular document: angular.io/api/core/OnChanges
Further to my comment above, I implemented this mechanism and realized that OnChanges is not triggered if change is made outside of the views. A good explanation is here: medium.com/@isaacplmann/… From this point of view, I would say the get / set solution in blog above or by @Mathias is better, but I don't like the use of private variable.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.