Невозможно получить доступ к этому из вложенной функции в angular4 - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть компонент с именем abc, и в этом компоненте у меня есть три переменные с именем title, Desc, Name, и когда я пытаюсь получить к нему доступ из вложенной функции, она выдается как неопределенная.

, например

@Component({
  selector: 'abc',
  templateUrl: './abc.component.html',
  styleUrls: ['./abc.component.css'],
  providers: [abcService]
})

export class abcComponent implements AfterViewInit,AfterViewChecked {

  title;
  Desc;
  Name;
  date=null;

test(){
this.title='a';
//work fine
}

test11(){

$('#cmg tbody').on('click', 'a.editor_edit', function (e) {
e.preventDefault();
this.title= false;  //gives me an undefined
});

}

}

1 Ответ

0 голосов
/ 30 апреля 2018

Это потому, что вы теряете область в вашем обратном вызове. Измените его, чтобы использовать функцию стрелки , чтобы сохранить this

$('#cmg tbody').on('click', 'a.editor_edit', (e) => {
  e.preventDefault();
  this.title= false;
});

До функций стрелок каждая новая функция определяла свое значение (новый объект в случае конструктора, неопределенный в строгом режиме вызовы функции, базовый объект, если функция вызывается как «метод объекта» и т. д.). Это оказалось не идеально с объектно-ориентированный стиль программирования.

...