wesley.ireland
wesley.ireland

Reputation: 643

Angular 2: How do you access component variables within an event (scope issue)

I have a click event on my component, that needs to access private variables from the component itself. However I seem to be running into a scoping issue: the keyword this no longer refers to the component's scope but rather the scope of the event. Help!

onclick(event){
  for(var i = 0; i < this.arr.length; i++) { ... }
}

In the above example, this.arr is undefined because it does not belong to the event scope.

How do I get access to the component scope from here?

Upvotes: 8

Views: 4333

Answers (1)

G&#252;nter Z&#246;chbauer
G&#252;nter Z&#246;chbauer

Reputation: 657466

Add .bind(this) to fix this

element.addEventListener("click", this.onclick.bind(this), false);

Upvotes: 14

Related Questions