Chamar função em wigdet depois de preenchido FLUIG.Filter

Galera

Estou tentando chamado uma função na minha widget dentro do evento de gatilho do FLUIG.Filter mas ele não reconhece a função this.getListaAgendas sendo que essa função eu chamo no init antes mesmo do cara preencher o filter na widget. Porque será o erro?

var filtro = FLUIGC.filter('#busca_'+ this.instanceId, unidadesDataset);
        filtro.on('fluig.filter.item.added', function(ev) {
            var items = filtro.getSelectedItems();
            this.filtroUnidade = items;
            this.getListaAgendas();
        });

Se não me engano esse evento é disparado via JQuery e essa biblioteca força o this a referenciar o elemento que gerou o disparo do evento.

Uma solução que acredito que funcione é declarar uma variável auxiliar pra ser a referência à widget e usá-la dentro do evento disparado. Ou talvez simplesmente usar arrow function, já que elas não possuem this instanciado (mas não sei se funcionaria).

const self = this;

filtro.on('fluig.filter.item.added', function(ev) {
    var items = filtro.getSelectedItems();
    self.filtroUnidade = items;
    self.getListaAgendas();
});

ou talvez assim, mas precisaria testar.

filtro.on('fluig.filter.item.added', ev => {
    var items = filtro.getSelectedItems();
    this.filtroUnidade = items;
    this.getListaAgendas();
});

Ambas alternativas funcionaram, obrigado!

1 curtida