Meteor blaze 模板不会在 Reactive 变量更改时重新呈现
Meteor blaze template is not re-rendered upon change in Reactive variable
场景:单击下拉按钮时应显示模型的字段。
模板:producer.html
<template name="producer">
<li>
<a href="{{producerName}}" >{{producerName}}</a>
<button class="expand">⌄</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());
}
});
调试时很明显反应变量的值相应地改变了。但是,模板不会按预期呈现表单。我错过了什么?
你定义的模板助手有误,应该是
Template.producer.helpers({
expanded() {
return Template.instance().expanded.get();
}
})
场景:单击下拉按钮时应显示模型的字段。
模板:producer.html
<template name="producer">
<li>
<a href="{{producerName}}" >{{producerName}}</a>
<button class="expand">⌄</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());
}
});
调试时很明显反应变量的值相应地改变了。但是,模板不会按预期呈现表单。我错过了什么?
你定义的模板助手有误,应该是
Template.producer.helpers({
expanded() {
return Template.instance().expanded.get();
}
})