Angular 8, как ссылаться на свойство компонента внутри функции библиотеки javascript

#javascript #jquery #angular #typescript

#javascript #jquery #angular #typescript

Вопрос:

Я использую семантический пользовательский интерфейс в angular, и у меня есть следующий код:

 componentProperty: boolean = false;

 ngOnInit() {    
    (<any>$('.ui.dropdown')).dropdown();
    
    (<any>$('.ui.input')).popup({
        on: 'focus', 
        onShow: (e) => {
            return this.componentProperty;
        }
    });
}
  

всплывающее окно функции определяется семантическим пользовательским интерфейсом. Семантический пользовательский интерфейс основан на Jquery.
Здесь свойство componentProperty не определено.

Комментарии:

1. Пожалуйста, поделитесь кодом, в котором componentProperty присваивается значение. Приведенный выше код просто объявляет его, поэтому его значение не определено.

2. Что вы видите для temp как в: let temp = (<any> $(‘.ui.dropdown’))

Ответ №1:

Это касается области видимости. Попробуйте:

  ngOnInit() {
    const me = this;

    (<any>$('.ui.dropdown')).dropdown();
    
    (<any>$('.ui.input')).popup({
        on: 'focus', 
        onShow: (e) => {
            return me.componentProperty;
        }
    });
}
  

Ответ №2:

Вы пытались определить функцию OnShow в области компонентов?

 ngOnInit() {    
   const onShow = () => this.componentProperty;
   (<any>$('.ui.input')).popup({
      on: 'focus', 
      onShow
   });
}
  

И если это все равно не сработает:

   const doOnShow = () => this.componentProperty;
  (<any>$('.ui.input')).popup({
      on: 'focus', 
      onShow: doOnShow.bind(this)
   });