Wpis z mikrobloga

Nie ogarniam #angularjs. Czy "this" w ramach callbacku metody to nie "this" w sensie kontrolera?

Korzystam sobie z: callback: https://github.com/daniel-nagy/md-data-table
Wyłapuję event naciśnięcia na element listy: mdOnSelect. Konsola elegancko loguje, ale nie zmienia wartości. Podejrzewam, że this w callbacku odnosi się do jakieś klasy wewentętrznej. Jak w takim razie zmienić selectedTraining z MyController? W Javie byłoby MyController.this.selectedTraining.

class MyController {

// DZIAŁA
constructor() {
this.selectedTraining = { id: 2 };
}

// NIE DZIAŁA
onItemSelected(item) {
this.selectedTraining = { id: 2 };
}
}
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qmar nie, to nie to samo this. Powinieneś użyć closure jeżeli chcesz z metody callbacku użyć kontekstu kontrolera. Możesz użyć też bind na callbacku. Poczytaj o tym na mdn.
  • Odpowiedz