Обновление данных alpinejs из функции области действия не отражается в другой функции области действия

#javascript #alpine.js

Вопрос:

У меня есть компонент alpine/laravel-livewire — выпадающий выбор. Область действия компонента alpine также определяет некоторые функции, которые я вызываю из разных узлов внутри компонента. Интересно, что если я изменяю значение одного из свойств данных внутри функции с областью действия (т. Е. функции A), изменение не отражается внутри другой функции с областью действия (функции B) на том же компоненте. Хотя изменение сохраняется, если я получаю доступ к этим данным с одного из узлов. Пример кода:

     window.dropDownAlpineScope = function(lwire) {
    return {
        open: @entangle('showOptions'),
        dropDownOptions: @entangle('dropDownOptions'),
        dropDownOptionsUnfiltered: lwire.get('dropDownOptions'),
        selectedOption: @entangle('selectedOption'),
        dropDownFor: lwire.get('usedFor'),
        searchString: null,
        optionsCount: null,

        filterOptions() {
            let arr = [...this.dropDownOptionsUnfiltered];
            arr = this.dropDownOptionsUnfiltered.filter(option => {
                    return option['text'] amp;amp; option['text'].toLowerCase().includes(searchString);
            });


            this.dropDownOptions = arr;
            this.optionsCount = arr.length;

            console.log(this.optionsCount); // ######### it prints 3(for example)
        },

        closeOptions(dropDownId, indexOfOption) {
           console.log(this.optionsCount);  // #########  this prints null!!
        },

        initWatcher() {

            this.$watch('searchString', (newStr, oldStr) => {
                this.$nextTick(() => {
                    this.filterOptions();
                });
            });
        }
    }
}
 

если значение searchString изменяется, запускается наблюдатель и значение optionsCount обновлений. Но тогда, если closeOptions функция вызывается с какого-либо узла в качестве обработчика события focusout, значение по optionsCount -прежнему равно нулю.

Кто-нибудь может объяснить, пожалуйста, почему?