Шаблон Meteor Blaze не перерисовывается при изменении переменной Reactive - PullRequest
0 голосов
/ 26 марта 2020

Сценарий: Поля модели должны отображаться при нажатии на кнопку раскрывающегося списка.

Шаблон: производитель. html

<template name="producer">
    <li>
        <a href="{{producerName}}" >{{producerName}}</a>
        <button class="expand">&#8964;</button>
        {{#if expanded}}
            <form>....</form>
        {{/if}}
    </li>
</template>

Клиент JS: производитель. js

// creating the reactive variable
Template.producer.onCreated(
    function () {
        this.expanded = new ReactiveVar(false);
    }
);

// helper
Template.producer.helpers = {
    expanded() {
        return Template.instance().expanded.get();
    }
};

// event listener
Template.producer.events({
    'click .expand'(event, instance) {
        instance.expanded.set(!instance.expanded.get());
    }
});

Во время отладки было ясно, что значение реактивной переменной изменяется соответствующим образом. Тем не менее, шаблон не отображает форму, как ожидалось. Чего мне не хватает?

1 Ответ

3 голосов
/ 26 марта 2020

Вы неправильно определили свои помощники по шаблонам, это должно быть

Template.producer.helpers({
    expanded() {
        return Template.instance().expanded.get();
    }
})
...