流变模板未在反应变量更改时重新渲染

问题描述 投票:0回答:1

场景:单击下拉按钮时,应显示模型的字段。

Template:producer.html

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

客户端JS:producer.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());
    }
});

调试时很明显,反应变量的值已相应更改。但是,模板不能呈现预期的形式。我想念什么?

templates meteor reactive-programming meteor-blaze reactive
1个回答
3
投票
您定义的模板助手错误,应该是

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

© www.soinside.com 2019 - 2024. All rights reserved.