Estoy usando la interfaz de usuario semántica en angular y tengo el siguiente código:

componentProperty: boolean = false;

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

La función emergente está definida por la interfaz de usuario semántica. La interfaz de usuario semántica se basa en Jquery. Aquí, componentProperty no está definido.

-1
Diego Alves 6 oct. 2020 a las 23:28

2 respuestas

La mejor respuesta

Esto sobre el alcance. Tratar:

 ngOnInit() {
    const me = this;

    (<any>$('.ui.dropdown')).dropdown();
    
    (<any>$('.ui.input')).popup({
        on: 'focus', 
        onShow: (e) => {
            return me.componentProperty;
        }
    });
}
1
bensiu 6 oct. 2020 a las 20:39

¿Ha intentado definir la función onShow en el alcance de los componentes?

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

Y si eso todavía no funciona:

  const doOnShow = () => this.componentProperty;
  (<any>$('.ui.input')).popup({
      on: 'focus', 
      onShow: doOnShow.bind(this)
   });
0
Casaper 6 oct. 2020 a las 23:06